如何用vite打包解决前端发版后浏览器缓存问题

 更新时间:2024年11月28日 10:05:37   作者:树枝是天空的根  
这篇文章主要介绍了如何用vite打包解决前端发版后浏览器缓存问题的相关资料,这样的配置能够有效避免浏览器缓存问题,确保浏览器每次都能加载最新的代码,同时又不影响第三方库的缓存效果,需要的朋友可以参考下

如何避免浏览器缓存问题,保证每次发布新版本时浏览器都能加载最新的代码

Vite 构建工具的配置文件 vite.config.js

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import pkg from './package.json' assert { type: 'json' };

// 时间戳
const timestamp = new Date().getTime();

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src') // 将@配置为src目录的绝对路径
    }
  },
  server: {
    host: '0.0.0.0',
  },
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          vendor: Object.keys(pkg.dependencies),
        },
        chunkFileNames: ({ name }) => {
          if (name === 'vendor') {
            return `assets/js/[name]-[hash].js`; // 第三方库不添加时间戳
          } else {
            return `assets/js/[name]-[hash]-${timestamp}.js`; // 自定义文件名,使用时间戳保证唯一性
          }
        },
        entryFileNames: ({ name }) => {
          if (name === 'vendor') {
            return `assets/js/[name]-[hash].js`; // 第三方库不添加时间戳
          } else {
            return `assets/js/[name]-[hash]-${timestamp}.js`; // 自定义文件名,使用时间戳保证唯一性
          }
        },
        assetFileNames: `assets/[ext]/[name]-[hash].[ext]` // 资源文件添加时间戳
      },
    }
  }
});

通过设置 chunkFileNames 和 entryFileNames 函数,根据文件名是否为第三方库来动态设置输出文件的文件名。对于第三方库,不添加时间戳,确保其文件名稳定;而对于自定义文件,则使用时间戳保证每次构建生成的文件名都具有唯一性。这样的配置能够有效避免浏览器缓存问题,确保浏览器每次都能加载最新的代码,同时又不影响第三方库的缓存效果。

总结

到此这篇关于如何用vite打包解决前端发版后浏览器缓存问题的文章就介绍到这了,更多相关vite打包解决前端浏览器缓存内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3中的watch和watchEffect实例详解

    vue3中的watch和watchEffect实例详解

    watch和watchEffect都是监听器,但在写法和使用上有所区别,下面这篇文章主要给大家介绍了关于vue3中watch和watchEffect的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • vue中this.$message的实现过程详解

    vue中this.$message的实现过程详解

    Message在开发中的使用频率很高,也算是Element-UI组件库中比较简单的,对于感兴趣的朋友可以一起探讨一下Message组件的实现,本文详细介绍了vue中this.$message的实现过程,感兴趣的同学可以参考一下
    2023-04-04
  • vue中如何使用echarts动态渲染数据

    vue中如何使用echarts动态渲染数据

    这篇文章主要给大家介绍了关于vue中如何使用echarts动态渲染数据的相关资料,echarts是一款基于JavaScript的开源可视化图表库,它通过简单的配置即可实现各种各样的可视化效果,需要的朋友可以参考下
    2023-11-11
  • vue中el-table合并列的具体实现

    vue中el-table合并列的具体实现

    本文主要介绍了vue中el-table合并列的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • vue业务实例之组件递归及其应用

    vue业务实例之组件递归及其应用

    目中出现多级菜单时,需要多层for循环时,但是当菜单增加层级时,需要在页面结构中增加一层for循环,这时我们可以使用组件递归的思想来实现,下面这篇文章主要给大家介绍了关于vue业务实例之组件递归及其应用的相关资料,需要的朋友可以参考下
    2022-05-05
  • ElementUI中<el-form>标签中ref、:model、:rules的作用浅析

    ElementUI中<el-form>标签中ref、:model、:rules的作用浅析

    Element官方文档中写到,model是表单数据对象,rules是表单验证规则,下面这篇文章主要给大家介绍了关于ElementUI中<el-form>标签中ref、:model、:rules作用的相关资料,需要的朋友可以参考下
    2023-01-01
  • Vue获取子组件实例对象ref属性的方法推荐

    Vue获取子组件实例对象ref属性的方法推荐

    在Vue中我们可以使用ref属性来获取子组件的实例对象,这个功能非常方便,这篇文章主要给大家介绍了关于Vue获取子组件实例对象ref属性的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Vue3 ref构建响应式变量失效问题及解决

    Vue3 ref构建响应式变量失效问题及解决

    这篇文章主要介绍了Vue3 ref构建响应式变量失效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Vue动态样式几种常用方法总结

    Vue动态样式几种常用方法总结

    这篇文章主要给大家介绍了关于Vue动态样式几种常用方法总结的相关资料,在我们的前端界面中,很多的地方的样式都是不确定的状态,要根据其他内容的变化而变化样式的,需要的朋友可以参考下
    2023-08-08
  • 关于vue3使用particles粒子特效的问题

    关于vue3使用particles粒子特效的问题

    这篇文章主要介绍了关于vue3使用particles粒子特效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论