“./”路径规范是什么意思

what does "./" path specification means?

本文关键字:是什么 意思 路径      更新时间:2023-09-26

我一直在阅读RequireJS。

我不明白两者之间的区别

define(["./cart", "./inventory"], function(cart, inventory) {...}

 define(["cart", "inventory"], function(cart, inventory) {...}

"./"有什么区别?? 我们必须做什么替代方案,使用没有"./"的依赖路径?

一般来说,在 RequireJS 中模块名称中存在 .../ 与 HTTP 路径的含义相同。

依赖项中存在./告诉 RequireJS 从当前目录开始搜索。如果您想要的是使用一个您知道与需要它的模块位于同一目录中的模块,这将非常有用。假设模块 A 需要模块 B,并且两者位于同一目录中,那么模块 A 只需要 "./moduleB" 。这样做的一个优点是,您不必担心模块的存储位置。如果您移动它们,但它们始终在同一个目录中,则模块 A 将始终找到模块 B。

另一件事是,如果您require("moduleX")并且有多个名为moduleX的模块可用,您将获得哪个模块?相对路径阐明了您将获得哪一个。

问你如何摆脱./首先,我想问你真的想摆脱它吗?在我给出的场景中,两个模块位于同一目录中并且这种关系应该是稳定的,那么摆脱./是没有意义的。它实际上可以帮助人们阅读代码。如果你需要的是像jQuery这样的东西,它恰好在某个时刻与另一个模块位于同一个目录中,但可以合法地安装在其他地方,并且你可以想象它对于给定的应用程序是唯一的,那么让它在一个全球知名的位置是有意义的。为此,您可以在 requirejs 配置中使用 paths,例如:

paths: {
   'jquery': 'external/jquery-1.9.1'
}

这是实际应用程序的实际代码部分。无论哪个模块需要jquery,它都只是发出require("jquery")。它不必担心jquery相对于自身的位置。你可以为你喜欢的任何模块指定这样的路径,而不仅仅是jQuery。如果 jQuery 将来移动到其他位置,或者您想从 CDN 提供它,则会编辑上面代码段中的此映射,但require("jquery")仍然有效。

在您的代码上下文中,这意味着在与当前执行脚本相同的目录中定义 cart。

另一种方法是使用绝对路径:

/var/www/site/cart

如:

define(["/var/www/site/cart", "/var/www/site/inventory"], function(cart, inventory) {...}

维基百科

define(["./cart", "./inventory"], function(cart, inventory) {...}

它在文件系统的当前目录中搜索特定文件

define(["cart", "inventory"], function(cart, inventory) {...}

它在文件系统的根目录中搜索特定文件

./ 是指当前目录,以获取当前与脚本位于同一目录中的模块。没有./是指节点路径,本地和已安装模块的位置(例如:netfs,以及任何使用通过npm安装的东西) 使用绝对路径可以到达文件系统中的任何位置(/i/like/node/js/modules.js

'/' 指的是根目录和

"./"是指当前目录

define(["./cart", "./inventory"]:这将引用当前正在执行脚本的目录中的购物车。

./ 表示您将保留在同一个目录中。