阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js module 的缓存机制

      Node.js module 缓存机制

      模块在第一次加载后会被缓存,类似其他缓存机制,比如国内的seajs等也都是这么干的;

      核心就一句话:如果每次调用 require('foo') 都解析到同一文件,则返回相同的对象。

      多次调用 require(foo) 不会导致模块的代码被执行多次。 这是一个重要的特性。 借助它,

      可以返回“部分完成”的对象,从而允许加载依赖的依赖, 即使它们会导致循环依赖。

      注意:如果想要多次执行一个模块,可以使用 module exortes 导出一个函数,然后调用该函数。

      模块缓存的注意事项

      模块是基于其解析的文件名进行缓存的。 由于调用模块的位置的不同,模块可能被解析成不同的文件名(比如从 node_modules 目录加载),这样就不能保证 require('foo') 总能返回完全相同的对象。

      此外,在不区分大小写的文件系统或操作系统中,被解析成不同的文件名可以指向同一文件,但缓存仍然会将它们视为不同的模块,并多次重新加载。

      例如, require('./foo')require('./FOO') 返回两个不同的对象,而不会管 ./foo 和 ./FOO 是否是相同的文件。


      更多内容请参考:Node.js module 模块,或者通过 点击对应菜单 进行查看;


      目录
      目录