为了账号安全,请及时绑定邮箱和手机立即绑定

看了阮一峰的网络日志 require() 源码解读后不懂

看了阮一峰的网络日志 require() 源码解读后不懂

青春有我 2018-12-28 19:14:25
小白,看了文章发晕。。。大神有段代码是这样的`// 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 时的路径了。

查看完整回答
反对 回复 2019-01-07
  • 1 回答
  • 0 关注
  • 539 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信