我知道你可以在使用CommonJS的时候从缓存中清除文件,只要delete从require.cache中取出,然后require再次取出文件。但是我在使用ESM的时候找不到一个等效的选项。这可能吗?如果可以,怎么做?
delete
require.cache
require
6ojccjat1#
在esm问题时阅读,似乎是故意不暴露缓存。恐怕你的问题的答案是“不”。
9avjhtql2#
看起来有一个使用动态导入的解决方案:
const modules = { moduleA: async () => await import(`./module-a.js?v=${Date.now()}`) }
然后像这样使用它:
async function myTest() { // module will be reset at each call of the function const moduleA = await modules.moduleA() }
这里有一个关于它的问题,提供了有关该技术there的更多详细信息
2条答案
按热度按时间6ojccjat1#
在esm问题时阅读,似乎是故意不暴露缓存。
恐怕你的问题的答案是“不”。
9avjhtql2#
看起来有一个使用动态导入的解决方案:
然后像这样使用它:
这里有一个关于它的问题,提供了有关该技术there的更多详细信息