dva.js打包 hash文件名

遇到的问题: 

我的项目是dva.js 默认 打包 文件是 不带hash的,这样就导致每次 部署后都需要手动清除浏览器才行。所以 我就想到了 文件名hash。

dva 3.6.2版本

package.json 截图

 具体配置:

 具体配置步骤如下:

dva 的配置是在 .webapckrc.js配置的,当然也可以直接新建 webpack.config.js 应该也可以。

因为dva和umi是一脉相承的所以 api有的是共用的,通过umi文档 找到 hash配置。

hash配置

  

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是这样的。

原 index.html

 src/index.ejs 变成了这样 其实基本不差什么 只是 把 link  index.js 和script src index.js 注释了。其它都保留了。你的 也一样。

index.ejs 截图

 总结:

现在 dva似乎 基本不怎么维护了, 如果是新项目 建议 使用umi 或者 antd-pro。

antd-pro就是 基于umi和antd 做了一个封装 。用法和 dva,umi基本没什么太大区别。

猜你喜欢

转载自blog.csdn.net/weixin_44058725/article/details/126510594
今日推荐