在node.js中,我们可以使用
delete require.cache[require.resolve(somePath)];
要在运行时删除需求缓存。
是否有类似的方法可以删除deno中的rumtime导入缓存?
-r
或--reload
选项将重新编译导入的模块。
-r, --reload=<CACHE_BLACKLIST> Reload source code cache (recompile TypeScript)
https://deno.land/manual#other-key-behaviors
其他关键行为
- 首次执行时将获取并缓存远程代码,只有在使用--reload标志运行代码后,才会更新。 (因此,这将仍然可以在飞机上工作。)
- 从远程URL加载的模块/文件的目的是不可变和可缓存的。
您可以传递参数以重新加载特定的模块:
--reload=https://deno.land/std
https://deno.land/manual/linking_to_external_code/reloading_modules
Deno自19年8月以来就支持动态导入,我认为您可以执行的操作类似于
let neededModule = getNeededModule();
import neededModule;
...
neededModule = getAnotherModule(); //Replace in runtime
import neededModule
...
//Or even delete in runtime (with some help from the garbage collector)
neededModule = null;