关于自定义nodejs模块的查找

最近再看nodejs自定义模块的查找的时候有一点疑惑的地方。比如我的目录如下所示:
图片描述

我的server.js的内容是var test=require('test');,其他文件内容全部都是

console.log('我的目录是'+__dirname)
console.log('我的位置是'+__filename)

运行server.js后,按我的理解查找顺序应该是先查找aaa/node_modules/test.js,如果没有的话查找aaa/node_modules/test/package.json文件获取main属性进行进一步的查找。然而我运行的结果是在aaa/node_modules/test存在packag.json文件的情况下,它会优先加载main字段指向的文件,而不是先加载aaa/node_modules/test.js文件。这让我很疑惑。按nodejs官方文档来说,不是先加载文件再加载目录吗,为什么package.json文件的有无还会影响整个查找过程。求解答!

阅读 1.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题