我很好奇是否有什么好的方法可以在使用模块后卸载它。在某些情况下,我需要使用引入大量代码的模块,但它们很少使用(比如作为管理工具),但我犹豫是否使用它们,因为之后它们可能只会浪费内存,这可能会更好在别处使用。有什么方法可以卸载它们,无论是显式卸载还是在一段时间未使用时允许系统卸载?
最佳答案
是的,可以直接访问模块缓存:
var name = require.resolve('moduleName');
delete require.cache[name];
请注意,如果您的代码包含对您想要删除的这些模块公开的任何内容的引用,则它不会被清理。
(顺便说一句:在表面之下,require.resolve
和 require.cache
只是 Module._resolveFilename
和 的代理>Module._cache
分别是 Module
是核心模块加载器,即 require('module')
.)
关于node.js - 卸载代码/模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6676612/