VUE的缓存问题

解决 Vue 缓存问题通常是为了确保用户访问最新版本的应用程序,而不会被浏览器和飞书的缓存所困扰。以下是针对使用 Webpack 和 Vite 脚手架的解决方案:

1. 增加文件指纹 (Hashing)

通过文件名添加 hash,确保文件更新后,文件名发生变化,浏览器会重新加载新文件。

Webpack
  • 在 Webpack 的配置文件vue.config.js中设置 output.filenameoutput.chunkFilename,添加 hash:
javascript 复制代码
module.exports = {
    configureWebpack: {
        output: {
            filename: 'js/[name].[hash].js', // 主文件加 hash
            chunkFilename: 'js/[name].[hash].js', // 分包文件加 hash
        },
    },
};
Vite
  • 默认情况下,Vite 会在构建时为静态资源文件添加 hash,无需额外配置。

  • 如果需要调整输出文件路径或文件名,可在 vite.config.js 中配置:

javascript 复制代码
export default defineConfig({
  build: {
    rollupOptions: {
      output: {
        entryFileNames: 'assets/js/[name].[hash].js',
        chunkFileNames: 'assets/js/[name].[hash].js',
        assetFileNames: 'assets/[ext]/[name].[hash].[ext]',
      },
    },
  },
});

2. 构建时清空构建目录

由于js增加了Hash,因此需要每次build时对构建目录进行清理。

Webpack 的 clean-webpack-plugin
  • 先安装clean-webpack-plugin
bash 复制代码
npm install clean-webpack-plugin --save-dev
  • 在每次构建时清理旧的构建文件。
javascript 复制代码
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
    plugins: [
        new CleanWebpackPlugin(),
    ],
};
Vite 的 build.clean
  • Vite 构建默认会清理输出目录,但可以通过 build.emptyOutDir 来控制。
javascript 复制代码
build: {
  emptyOutDir: true,
}

相关推荐
仿生狮子1 小时前
别再说“全栈”了,AI 时代团队只认这 5 种人
前端·人工智能·后端
kyriewen1 小时前
AI 写的 React 组件,合并前必查的 6 个坏味道——每个都有代码对比
前端·javascript·react.js
Highcharts.js1 小时前
软件开发公司为什么选择 Highcharts?
前端·前端框架·echarts·数据可视化·技术选型·highcharts·图表工具
阿祖zu2 小时前
企业 AI 转型之痛,个人提效十倍不止,组织效率仍止步不前?
前端·aigc·agent
摇滚侠3 小时前
SpringBoot3+Vue3 全套视频教程 45-51
前端·javascript·vue.js
Hilaku4 小时前
前端大裁员背后的恐慌:我们还剩什么底牌?
前端·javascript·程序员
咖啡无伴侣5 小时前
unplugin-auto-import 使用详解+面试高频考点
前端·架构
搬砖记录员5 小时前
录屏文件打不开?H.265兼容性踩坑与4种实战方案
前端
明月_清风5 小时前
SEO 完全指南:从底层原理到实战应用场景
前端·seo
默_笙5 小时前
🚲 手写一个"Claude Code":我用 LangChain + ReAct 循环,让 AI 自己读文件、解释代码
前端·javascript