优先缓存加载
模块在第一次加载后会被缓存起来,意味着多次调用require()不会导致模块的代码被执行多次。
注:不论是内置模块、自定义模块、还是第三方模块、都会优先缓存加载,从而提高模块的加载效率。
内置模块的加载机制
- 内置模块是node.js官方提供的,加载优先级最高
- 当有第三方模块也叫fs时,如果你用require("fs")这样引入那么始终返回的是内置的fs模块。
自定义模块的加载机制
- 必须用路径标识符开头./ 或者../
- 如果没有使用路径标识符开头的话那么会被当做内置模块或者第三方模块进行加载的。
如果使用requrie()进行导入的时候你没有加扩展名那么
- node先按照文件称给你查找
- 补全.js进行加载
- 补全.json进行加载
- 补全.node扩展名进行加载
- 都加载失败的话会在终端报错
第三方模块的加载机制
在require()中写入的既不是一个内置模块也没有./或者../开头那么会尝试从/node_modules文件夹中加载第三方模块。