1.优先从缓存中加载
模块在第一次加载后台后会被缓存,导致多次调用require()不会导致模块的代码被多次执行。无论是内置模块、自定义模块、第三方模块,都会优先从缓存中加载。
2.内置模块加载机制
内置模块的加载优先级更高
3.自定义模块的加载机制
使用require()加载自定义模块时,如果没有指定./或…/路径标识符,node会把它当做内置模块或第三方模块进行加载。在使用require()导入自定义模块时,如果省略了文件扩展名node会按顺序尝试加载以下文件:
- 按照确切的文件名进行加载
- 补全.js扩展名进行加载
- 补全.json扩展名进行加载
- 加载失败,终端报错