You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Vite PWA在开发与生产模式下预缓存行为一致?

让Vite-PWA开发与生产模式预缓存行为一致的解决办法

Vite-PWA默认在开发模式下仅预缓存index.html和registerSW.js这类核心文件,目的是降低开发阶段的缓存开销,但如果要让它和生产模式一样预缓存所有资源,可以通过以下配置实现:

配置Workbox资源匹配规则

在你的VitePWA配置中,给workbox添加明确的globPatterns和globIgnores,让开发、生产模式共用一套资源匹配逻辑:

VitePWA({
  registerType: 'autoUpdate',
  injectRegister: 'auto',
  devOptions: {
    enabled: true,
    type: 'module',
  },
  workbox: {
    maximumFileSizeToCacheInBytes: 5000000,
    // 匹配所有需要预缓存的资源类型,可按需调整
    globPatterns: [
      '**/*.{html,js,css,ico,png,jpg,jpeg,svg,webp}'
    ],
    // 排除不需要预缓存的文件,根据项目情况修改
    globIgnores: [
      '**/node_modules/**/*',
      '**/sw.js',
      '**/workbox-*.js'
    ]
  },
}),

关键说明

  • 开发模式下Vite会动态生成带hash后缀的资源,globPatterns的规则要覆盖这类动态文件,确保所有需要预缓存的资源都能被匹配到。
  • 修改配置后重启yarn dev,查看dev-dist/sw.js中的precacheAndRoute数组,即可看到所有符合规则的资源都已加入预缓存清单,与生产模式的结构一致。

内容的提问来源于stack exchange,提问作者Léo Coco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:43:18