# Node模块加载规则
user/work/test/test1/test2/index.js
文件内容var glob = require('glob')
,node 查找glob模块的顺序
是否有缓存
是否是node的模块
user/work/test/test1/test2/node_modules
有glob.js
,停止查找如果有
user/work/test/test1/test2/node_modules/glob
文件夹,并且有package.json
,并且package.json
文件内部的mian指定了具体文件路径,则使用mian字段提供的路径,停止查找
{
"main":"./lib/glob.js"
}
1
2
3
2
3
user/work/test/test1/test2/node_modules/glob
无package.json
并且有user/work/test/test1/test2/node_modules/glob/index.js
,则停止查找没有
user/work/test/test1/test2/node_modules/glob
,则回退到user/work/test/test1/node_modules
。执行步骤3-5
# 参考文章
https://nodejs.org/api/modules.html#modules_all_together
http://nodejs.cn/api/modules.html#modules_all_together
http://nodejs.cn/api/modules.html#modules_loading_from_node_modules_folders