包的使用

173 阅读1分钟

nodejs 对 npm 支持非常良好

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

var _ = require("lodash");

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

node_modules/lodash.js
node_modules/lodash/入口文件

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

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

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

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

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


如何理解var a = require("./a");

  1. 首先,查看当前目录是否有 a.js
  2. 把a当作文件夹,并且,把该文件夹当作一个包,看该包中是否有package.json文件,读取main字段。。。。