用过npm安装的依赖包如何导入呢
nodejs 对 npm 支持非常良好
当使用 nodejs 导入模块时,如果模块路径不是以 ./ 或 ../ 开头,则 node 会认为导入的模块来自于 node_modules 目录,例如:
var _ = require("lodash");
它是如何找到导出文件呢
它首先会从当前目录的以下位置寻找文件
node_modules/lodash.js
node_modules/lodash/入口文件
第一种导入情况,他会在node_modules文件夹下查找是否有lodash.js这个js文本,如果有就导入,如果没有就会在node_modules文件夹下查找是否有lodsh这个文件夹,有的话话就会去查看里面的入口文件
如果当前目录没有找到,会向上级目录查找,直到查找到盘符发现还是没有,就会报错
何为入口文件
- 查看导入包的package.json文件,读取main字段作为入口文件
图中查找的lodash.js如图
- 若不包含main字段,则使用index.js作为入口文件
你会发现index.js 里面是导出
入口文件的规则同样适用于自己工程中的模块
在 node 中,还可以手动指定路径来导入相应的文件,这种情况比较少见
如图这是自己工程的模块
// 首先,查看当前目录是否有 a.js
// 把a当作文件夹,并且,把该文件夹当作一个包,看该包中是否有package.json文件,读取main字段。。。。
//如果没有读取该文件夹中的index.js
var a = require("./a");
console.log(a)
当配置package.json后
上图中我将默认启动的js文件修改为main.js
运行结果