• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
就,这个名字
博客园    首页    新随笔    联系   管理    订阅  订阅

vue打包添加版本号或时间戳,实现更新项目自动清除缓存

本来vue打包会自动实现hash来解决缓存问题,但是在部分浏览器没有自动更新到,我这边在微信打开遇到这问题。

默认自动打开的格式类似这样子:

[name].[contenthash].css

 

 

 

然而我想要的格式是

[name].[contenthash].css?t=${Timestamp}

通过后面t=xxxx的不同从而实现自动重新加载文件,保持最新的界面。

 

在使用webpack打包的情况下:

在目录:build/webpack.xxx.conf.js文件

const Timestamp = new Date().getTime();
output: {
    path: config.build.assetsRoot,
    filename: utils.assetsPath(`js/[name].[chunkhash].${Timestamp}.js?t=${Timestamp}`),
    chunkFilename: utils.assetsPath(`js/[id].[chunkhash].${Timestamp}.js?t=${Timestamp}`)
  },
new ExtractTextPlugin({
      filename: utils.assetsPath(`css/[name].[contenthash].css?t=${Timestamp}`),
      allChunks: true,
    }),

 

在使用vueCli情况下:

const Timestamp = new Date().getTime();
chainWebpack(config) {
    // config.output.filename(`static/js/[name].[contenthash].js?v=${Timestamp}`).end()
    config.output.chunkFilename(`static/js/[name].[contenthash].js?t=${Timestamp}`).end()
    config.plugin('extract-css').tap(args => [{
      filename: `static/css/[name].[contenthash].css?t=${Timestamp}`,
      chunkFilename: `static/css/[name].[contenthash].css?t=${Timestamp}`
    }])
  },

因为项目使用了懒加载理由,所有chunk_xxx的文件,所有没有使用第一句(已注释)。

 

posted @ 2022-02-08 18:00  就,这个名字  阅读(2048)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3