如何在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
相关产品推荐
相关产品推荐

