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

如何在WorkboxPlugin.GenerateSW中忽略/排除CNAME记录

解决WorkboxPlugin自动包含CNAME文件的问题

要阻止WorkboxPlugin将CNAME文件加入缓存列表,直接在WorkboxPlugin.GenerateSW的exclude数组中添加匹配CNAME的正则表达式即可。

修改后的配置代码如下:

new WorkboxPlugin.GenerateSW({
  clientsClaim: true,
  skipWaiting: true,
  exclude: [
    /\.map$/, // source maps
    /^manifest.*\.js(?:on)?$/, // web app manifest
    /CNAME$/, // 排除CNAME文件
  ],
}),
new CopyWebpackPlugin({
  patterns: [
    {
      from: path.join(__dirname, '../public/manifest.json'),
      to: path.join(__dirname, '../build/manifest.json'),
    },
    {
      from: path.join(__dirname, '../public/favicon.ico'),
      to: path.join(__dirname, '../build/'),
    },
    {
      from: path.join(__dirname, '../public/CNAME'),
      to({ context, absoluteFilename }) {
        return Promise.resolve('../build/[name]');
      },
    },
  ],
}),

Workbox的exclude参数支持正则表达式数组,/CNAME$/会精准匹配文件名以CNAME结尾的文件,这样既不会影响CopyWebpackPlugin将CNAME复制到build目录用于GitHub Pages的域名绑定,又能阻止Workbox把该文件加入Service Worker的缓存清单。

内容的提问来源于stack exchange,提问作者Udhaya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:42:05