dva项目中增加静态资源hash值及问题

2019年11月07日Web前端

在每次修改完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。

注:重命名完后,记得一定要删除里面的scriptlink标签。 前者的存在会造成js报错等问题,后者会多个404 error的请求。(我偷懒直接copy了,报错的bug看了好久....)比如当时我遇到的报错:

Uncaught Error: Iframe has not been created yet.
Uncaught (in promise) Error: Iframe has not been created yet.

改好后,等重启项目,就可以使用了。