用过npm安装的依赖包如何导入呢

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

  1. var _ = require("lodash");

它是如何找到导出文件呢

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

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

第一种导入情况,他会在node_modules文件夹下查找是否有lodash.js这个js文本,如果有就导入,如果没有就会在node_modules文件夹下查找是否有lodsh这个文件夹,有的话话就会去查看里面的入口文件
如果当前目录没有找到,会向上级目录查找,直到查找到盘符发现还是没有,就会报错

何为入口文件

  1. 查看导入包的package.json文件,读取main字段作为入口文件

image.png
图中查找的lodash.js如图
image.png

  1. 若不包含main字段,则使用index.js作为入口文件

image.png
你会发现index.js 里面是导出

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

  1. // 首先,查看当前目录是否有 a.js
  2. // 把a当作文件夹,并且,把该文件夹当作一个包,看该包中是否有package.json文件,读取main字段。。。。
  3. //如果没有读取该文件夹中的index.js
  4. var a = require("./a");
  5. console.log(a)

当配置package.json后
image.png
上图中我将默认启动的js文件修改为main.js
image.png
运行结果
image.png