从官方 api 站点上,它说核心模块安装在 NodeJS 根文件夹的 /lib 文件夹中,但是当我试图搜索它时,我没有看到 /lib 文件夹。
任何想法?
另外,在我完成了一个
var a = require("a.js");
是否可以获得a.js的相应路径?
从官方 api 站点上,它说核心模块安装在 NodeJS 根文件夹的 /lib 文件夹中,但是当我试图搜索它时,我没有看到 /lib 文件夹。
任何想法?
另外,在我完成了一个
var a = require("a.js");
是否可以获得a.js的相应路径?
这意味着/lib
文件夹在源代码中而不是您的计算机中。您可以在存储库中看到它。
和
有两种模式require
绝对路径:如果参数不以./' nor
'../'开头,则为绝对路径。所以节点在核心模块中查找它(它在节点运行时编译)或您使用 npm 在本地安装的“node_modules”。
相对路径:如果参数以./
or开头,则为../
相对路径。所以节点寻找它到当前位置的相对路径。
就这么简单。并且您可以使用require.resolve('a.js')
获取绝对系统路径。但是核心模块没有路径,因为它是内置的。
尽管接受的答案足以解决问题,但值得一提的是,它包含一些关于 required 模式的误导性信息。来自Node 的参考文档:
以“/”为前缀的模块是文件的绝对路径。例如, require('/home/marco/foo.js') 将加载 /home/marco/foo.js 中的文件。
以 './' 为前缀的模块与调用 require() 的文件相关。也就是说,circle.js 必须和 foo.js 在同一个目录下才能被 require('./circle') 找到。
如果没有前导 '/' 或 './' 来指示文件,则该模块要么是“核心模块”,要么是从 node_modules 文件夹加载的。