dva项目中增加静态资源hash值及问题
在每次修改完bug,打完包给测试回归时,总有因为没有清除缓存造成bug再次被打开这种情况。此时,我们就需要静态资源增加hash值来避免缓存。
其实,dva已经内置了HTMLWebpackPlugin
插件,只要配置下就可以打开该插件。
开启hash
打开配置
在.webpackrc.js
或.webpackrc
中增加以下配置:
{
// .... 其他配置
hash: true,
html: {
template: "./public/index.ejs"
},
}
修改文件
一定要设置template
才可以开启HTMLWebpackPlugin
插件。index.ejs
文件内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>demo</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
或者你可以重命名public
文件夹下的index.html。
注:重命名完后,记得一定要删除里面的script
和link
标签。 前者的存在会造成js报错等问题,后者会多个404 error的请求。(我偷懒直接copy了,报错的bug看了好久....)比如当时我遇到的报错:
Uncaught Error: Iframe has not been created yet.
Uncaught (in promise) Error: Iframe has not been created yet.
改好后,等重启项目,就可以使用了。