一方面,由于模块的个数往往有限,且Node会自动缓存已经加载的模块,
再加上访问的都是本地文件,产生的IO开销几乎可以忽略。
再有,Node程序运行在服务器端,很少遇到需要频繁重启服务的情况,
那么就算在服务启动时在加载上花点时间(几秒)也没有什么影响。
Node会自动缓存经过require引入的文件,
使得下次再引入不需要经过文件系统而是直接从缓存中读取。
这种缓存是基于文件路径定位的,这表示即使有两个完全相同的文件,
但它们位于不同的路径下,也会在缓存中维持两份。
可以通过console.log(require.cache) 查看