<script type="text/javascript">
var script = document.createElement('script');
script.type = 'text/javascript';
script.onload = function () {
init(); // call other scripts when this file is fully loaded
};
script.src = 'dist/bundle.js?v='+Date.now();
document.getElementsByTagName('body')[0].appendChild(script);
</script>
<script>
function init(argument) {
// other scripts
console.log('dist/bundle.js is loaded from the server not from the cache')
}
</script>
7条答案
按热度按时间mzaanser1#
您可以删除文件夹“node_modules/.cache”以强制Webpacker/Babel重建其缓存。
d7v8vwbk2#
如果这对其他人有帮助,我有一个类似的案例,问题是在一个文件中,我的import语句的名称中有一个大写字母。
请注意,我已经删除了文件./model/Model.js,但是仍然会因为导入而出现错误。
一切又都好了。
pvcm50d13#
Webpack 5该高速缓存存储到
node_modules/.cache/webpack
(使用npm时)或.yarn/.cache/webpack
(使用Yarn Plug'n'Play API时)中,请参阅持久性缓存。您可以通过在webpack config中设置
cache: false
来完全停用缓存。如果您只是想删除您的缓存,那么请执行以下操作:
1.删除
node_modules/.cache/webpack
或.yarn/.cache/webpack
1.重新启动Webpack构建(仅热重新加载是不够的,因为文件仍将缓存在内存中)
当使用webpackDevMiddleware时,
.cache
目录会在您第一次访问页面时创建。在删除.cache
后,我不得不重新启动我的dev服务器,以查看在我的“node_modules”目录中更改文件的效果。mkshixfv4#
Webpack没有缓存,但浏览器有。Webpack编译生成的文件可以保持缓存,除非它们的内容发生了变化。在documentation上,他们解释说要解决这个问题,你可以在输出文件名中添加[contenthash]。
[contenthash]替换将基于资产的内容添加唯一哈希。当资产的内容更改时,[contenthash]也将更改。
欲了解更多信息,请查看Webpack's guide for caching。
waxmsbnn5#
正如警告所说,在忽略大小写时,目录中有两个
three.js
的副本,它们具有相同的有效名称:'three'与'THREE'是一样的。如果它们是不同的,则重命名其中一个。或者,如果它们是同一个模块,则给予它们一个相同的小写名称。
ghhaqwfi6#
你可以在webpack配置中设置
cache: false
。这对我在Next.js上是有效的。dldeef677#
要强制清除浏览器中的缓存,可以使用javascript动态加载生成的js bundle文件,并在
src
属性中添加一个查询参数,然后在加载文件时调用一个函数来执行其他脚本:请参阅:在JS中动态加载JS