小白,看了文章发晕。。。大神有段代码是这样的`// a.jsconsole.log('module.id: ', module.id);console.log('module.exports: ', module.exports);console.log('module.parent: ', module.parent);console.log('module.filename: ', module.filename);console.log('module.loaded: ', module.loaded);console.log('module.children: ', module.children);console.log('module.paths: ', module.paths);`node运行`$ node a.jsmodule.id: .module.exports: {}module.parent: nullmodule.filename: /home/ruanyf/tmp/a.jsmodule.loaded: falsemodule.children: []module.paths: [ '/home/ruanyf/tmp/node_modules','/home/ruanyf/node_modules','/home/node_modules','/node_modules' ]`我不懂module.filename不是给出了模块的绝对路径了吗,为什么后面module.paths还会给出模块的可能位置的数组,还添加了node_modules后缀,这样不是找不到a.js了吗?望指教
1 回答
ABOUTYOU
TA贡献1812条经验 获得超5个赞
如果 require 以相对路径开始,就会去找相对路径下的模块导出的内容。
如果 require 以绝对路径开始,就会依次冒泡寻找 node_modules ,这里的 module.filefile
和 __filename
是一样的,但是 paths 就有可能是继续寻找 module 时的路径了。
添加回答
举报
0/150
提交
取消