Skip to content

包的使用

nodejs 对 npm 支持非常良好

当使用 nodejs 导入模块时,如果模块路径不是以 ./ 或 ../ 开头,则 node 会认为导入的模块来自于 node_modules 目录,例如:

js
var _ = require("lodash");

它首先会从当前目录的以下位置寻找文件

js
node_modules/lodash.js			//先找node_modules目录下面是否有lodash.js文件
node_modules/lodash/入口文件	 //没有就找是否有lodash文件夹

/* 
1.先看node_modules下是否有b.js
2.没有的话就看是否有b文件夹,有的话就去找package.json的入口文件,没有就找index.js
*/

若当前目录没有这样的文件,则会回溯到上级目录按照同样的方式查找

如果到顶级目录都无法找到文件,则抛出错误

上面提到的入口文件按照以下规则确定

  1. 查看导入包的package.json文件,读取main字段作为入口文件
  2. 若不包含main字段,则使用index.js作为入口文件

入口文件的规则同样适用于自己工程中的模块 在 node 中,还可以手动指定路径来导入相应的文件,这种情况比较少见

//查找规则

js
var a= require("./a");

/* 
1.先看当前目录下是否有a.js
2.没有看是否有a文件夹,并把a当作一个包,去找package.json的入口文件(main字段),没有就找index.js
*/

MIT License