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,
}

相关推荐
Gauss松鼠会10 小时前
【GaussDB】GaussDB锁阻塞源头查询
java·开发语言·前端·数据库·算法·gaussdb·经验总结
YHHLAI10 小时前
Vue 3 流式输出实战:从零掌握 LLM Streaming 与 SSE 协议
前端·javascript·vue.js
2601_9657984711 小时前
Arrow Unlocker HTML5 Game Review: Keep Web Arcade Players Coming Back
前端·html·html5
不简说11 小时前
JS 代码技巧 vol.10 — 20 个 V8 引擎原理,解释"为什么这样写快"
前端·javascript·面试
醉城夜风~12 小时前
HTML常用标签详解学习博客:从基础标签到页面结构完整掌握
前端·学习·html
OpenTiny社区12 小时前
拒绝臃肿!TinyRobot从“AI 输入框”到“AI输入控制台”的可扩展进化
前端·vue.js
IT小盘12 小时前
09-使用Redis保存大模型多轮对话上下文
数据库·redis·缓存
淼澄研学13 小时前
PyTorch深度学习实战:5个核心方法从0到1构建神经网络
前端·数据库·python
英勇无比的消炎药13 小时前
Vue 工程接入 WebMCP SDK 最佳实践:从零构建智能前端应用
vue.js
MartinYeung513 小时前
[论文学习]WASP:面向提示注入攻击的Web代理安全性基准测试
前端·网络·学习