node模块加载


node模块加载

1、内置模块和第三方模块加载

require("fs") // 不用加路径

内置模块优先级 > 第三方模块

2、自定义模块

require("./abc") //必须添加 ./ 或者 ../ 这样的文件路径标识符

2.1 文件加载顺序

1、先加载 abc文件
2、再加载 abc.js
3、再加载 abc.json
4、再加载 abc.node

2.2 如何自定义模块

文件结构:
	- node_modules
		-- abc
			--- package.json
			--- index.js
			--- README.md

定义js的位置:
	在package.json中的main中指定js

3、第三方模块的加载机制

从当前文件目录中查找,一直找到根目录,如果没找到就报错
假设现在在C:\Windows\System32\abc.js中使用了require('tools'),那么它的加载顺序为
1、在C:\Windows\System32\node_modules\tools 查找
2、在C:\Windows\node_modules\tools 查找
3、在C:\node_modules\tools 查找
4、都没有的话就报错

4、目录作为模块加载

1、优先加载该目录下 package.json中main指定的js
2、再加载该目录下 index.js 文件