2013-05-16 30 views

回答

1

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

有两种模式为require

  • 绝对路径:如果该参数不./' nor开始 '../',它是绝对路径。因此节点在核心模块(它在节点运行时编译)或使用npm在本地安装的`node_modules'中查找它。

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

这很简单。你可以使用require.resolve('a.js')来获得绝对的系统路径。但核心模块自内置以来没有路径。

0

虽然接受的答案足以解决问题,但值得一提的是它有一些关于所需模式的误导性信息。从非常的Reference Documentation of Node

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

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

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