欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

清除require引入的js缓存

程序员文章站 2022-07-14 20:30:19
...

在项目中,通过这样require引入的js,自然会被缓存,可能会导致切换页面后不再加载。

require('../../static/js/xxx.js')

通过 require.cache即可删除该js缓存,解决上述问题

delete require.cache[require.resolve('../../static/js/xxx.js')]; 

官方文档对require.cache的解释:
被引入的模块将被缓存在这个对象中。 从此对象中删除键值对将会导致下一次 require 重新加载被删除的模块。 这不适用于原生插件,因为它们的重载将会导致错误。
可以添加或替换入口。 在加载原生模块之前会检查此缓存,如果将与原生模块匹配的名称添加到缓存中,则引入调用将不再获取原生模块。 谨慎使用!

require.resolve则相当于把相对路径转化成绝对路径,避免了自己手写的绝对路径跟cache里的key不一致的问题

相关标签: javascript require