我的项目是dva.js 默认 打包 文件是 不带hash的,这样就导致每次 部署后都需要手动清除浏览器才行。所以 我就想到了 文件名hash。
dva 2.3.1版本
具体配置步骤如下:
dva 的配置是在 .webapckrc.js配置的,当然也可以直接新建 webpack.config.js 应该也可以。
因为dva和umi是一脉相承的所以 api有的是共用的,通过umi文档 找到 hash配置。
所以 第一步 需要在 .webapckrc.js 加上 "hash":true ,注意hash加引号。
加上之后打包 确实 带了hash值,但是 部署后 浏览器报错。找不到 css和js文件。于是我 百度了一下找到了方案:
1.先删除 public下的index.html (删除之前先复制一份,后面有用)
2.在src下新建 一个 index.ejs 文件 把 index.html的东西复制进来(如果你之前有 引入css和js 那就需要 把link和script注释或者删除掉)。
3. 在 .webapckrc.js 里 加上
- "html": {
-
- "template": "./src/index.ejs"
-
- }
参考于:
dva中如何在打包时使用hash文件名并自动引入到index.html中
增加hash打包静态资源后,启动项目报错 · Issue #2236 · dvajs/dva · GitHub
上面
1.先删除 public下的index.html (删除之前先复制一份,后面有用)
2.在src下新建 一个 index.ejs 文件 把 index.html的东西复制进来(如果你之前有 引入css和js 那就需要 把link和script注释或者删除掉)。
3. 在 .webapckrc.js 里 加上
- "html": {
-
- "template": "./src/index.ejs"
-
- }
其中 1,2的意思 是 以我的为例子:
原来我的 public/index.html是这样的。
src/index.ejs 变成了这样 其实基本不差什么 只是 把 link index.js 和script src index.js 注释了。其它都保留了。你的 也一样。
现在 dva似乎 基本不怎么维护了, 如果是新项目 建议 使用umi 或者 antd-pro。
antd-pro就是 基于umi和antd 做了一个封装 。用法和 dva,umi基本没什么太大区别。