到目前为止,我对require的理解是,它遍历目录结构,查找您要导入的模块。好吧,that's not exactly correct,但让我们假设目录遍历的成本可以忽略不计。
我有一个名为BigModule
的模块。它包含很多东西,因此使用require
语句加载它会带来一些成本。导入一次是否比导入一次昂贵一百倍,还是有某种缓存机制导致这些脚本共享一个BigModule
实例?这都是在单个Node实例上发生的。
答案 0 :(得分:2)
require()
通过已解析的文件路径缓存呼叫; require()
两次(即使通过符号链接或不同的相对路径)两次访问同一文件也不会重新运行代码。