我正在使用Require加载一个大文件,当它完成后,我想从缓存中删除它。如果没有这些,每个文件都将永远留在内存中,这是我不想要的。运行 delete require.cache['path/to/file'] 本地工作。当我运行生产构建时,该密钥不再存在。我相信这是Webpack打包所有东西的方式,但不确定如何确认。有办法解决这个问题吗?
delete require.cache['path/to/file']
使用 require.resolve 获取模块的规范路径,NPM使用该路径作为缓存键。
require.resolve
const key = require.resolve('path/to/file') delete require.cache[key]
这个 docs for require.resolve 说:
使用internal require()机制查找模块的位置,但不加载模块,只返回解析的文件名。