## 查找策略 `require`方法接收一下几种参数的传递: - 原生模块:http、fs、path等 - 相对路径的文件模块:./mod或../mod - 绝对路径的文件模块:/pathtomodule/mod - 目录作为模块:./dirname - 非原生模块的文件模块:mod `require`参数较为简单,但是内部的加载却是十分复杂的,其加载优先级也各自不同,如下图: <div align="center"> <img src="https://user-images.githubusercontent.com/18660671/158347804-389051ad-f1fa-4ce3-8153-470738b5ebbb.png" /> </div> 从上图可以看见,文件模块存在缓存区,**寻找模块路径的时候都会优先从缓存中加载已经存在的模块** ## 参考文献 - [面试官:说说 Node 文件查找的优先级以及 Require 方法的文件查找策略?](https://vue3js.cn/interview/NodeJS/require_order.html)