模块标准
在Node中每一个js文件都是一个独自的模块
模块中包含CommonJS标准的外围变量:
导出:exports、module.exports
导入:require
通过上述变量进行模块化开发
查找策略
1.原生模块:http、fs、path等 require后优先查看模块是否在原生模块列表中
2.相对路径的文件模块:./mod或../mod
如果按确切的文件名没有找到模块,则 NodeJs 会尝试带上 .js、.json或 .node拓展名再加载
3.绝对路径的文件模块:/pathtomodule/mod 速度最快
4.目录作为模块:./dirname 会.js .json /main/index.js /main/index.node
5.非原生模块的文件模块:mod
查找程序以后文件夹的node_modules下找 下层目录下的node_modules下找 上下层目录下的node_modules下找 上上下层目录下的node_modules下找 .......
总结
1.缓存的优先级最高
2.内置模块优先级次之
3.如果是绝对路径 / 结尾,则从根目录找
4.如果是相对路径 ./结尾,则从以后require文件绝对地位找
5.如果文件没有携带后缀,先从js、json、node按程序查找
6.如果是目录,则依据 package.json的main属性值决定目录下入口文件,默认状况为 index.js
7.如果文件为第三方模块,则会引入 node_modules 文件向下级递归查找