Node.js模块分为两类
-
核心模块
Node.js模块中已经内置了多个核心模块供使用,如http和url模块,任何第三方模块不得与核心模块重名。 -
文件模块(第三方模块,用户自定义模块)
文件模块的查找规则:
-
require(path) ,则按照指定路径查找。path应当为 ./ 或 …/ 开头的相对路径,以及绝对路径(包括以"/"开头的根目录绝对路径)。
const module1=require('./module1.js'); const module2 =require('../module2.js'); const module3=require('/module3.js'); const module4=require('E://module4.js');
-
require(packageName),则按照以下顺序查找该模块:
① 查找本js文件所在目录下的node_modules目录,若不存在该目录,则向上一级目录查找node_modules目录。
②node_modules目录中查找名为packageName的目录,若不存在,向上一级目录中查找node_modules模块。
③在packageName目录中查找package.json文件,查找该文件中main属性标注的入口js文件。若不存在该入口文件,查找packageName目录中是否有index.js文件,若存在则将index.js作为入口js文件。
④ 若连index.js文件都不存在,则再向上一级目录查找node_modules。
上述查询规则中的“向上一级目录”都是只相对于使用了require语句的本js模块