0

官方 api 站点上,它说核心模块安装在 NodeJS 根文件夹的 /lib 文件夹中,但是当我试图搜索它时,我没有看到 /lib 文件夹。

任何想法?

另外,在我完成了一个

var a = require("a.js");

是否可以获得a.js的相应路径?

4

2 回答 2

1

这意味着/lib文件夹在源代码中而不是您的计算机中。您可以在存储库中看到它。

有两种模式require

  • 绝对路径:如果参数不以./' nor'../'开头,则为绝对路径。所以节点在核心模块中查找它(它在节点运行时编译)或您使用 npm 在本地安装的“node_modules”。

  • 相对路径:如果参数以./or开头,则为../相对路径。所以节点寻找它到当前位置的相对路径。

就这么简单。并且您可以使用require.resolve('a.js')获取绝对系统路径。但是核心模块没有路径,因为它是内置的。

于 2013-05-16T08:35:01.493 回答
0

尽管接受的答案足以解决问题,但值得一提的是,它包含一些关于 required 模式的误导性信息。来自Node 的参考文档

以“/”为前缀的模块是文件的绝对路径。例如, require('/home/marco/foo.js') 将加载 /home/marco/foo.js 中的文件。

以 './' 为前缀的模块与调用 require() 的文件相关。也就是说,circle.js 必须和 foo.js 在同一个目录下才能被 require('./circle') 找到。

如果没有前导 '/' 或 './' 来指示文件,则该模块要么是“核心模块”,要么是从 node_modules 文件夹加载的。

于 2015-01-04T12:25:58.117 回答