使用Workbox配置文件生成Service Worker时遇hasIndices属性必填错误
解决Workbox GenerateSW的
hasIndices属性缺失错误 这个报错是因为Workbox(多为v6及以上版本)对ignoreURLParametersMatching配置项的校验规则更新了——现在要求数组里的每一项必须是原生RegExp对象,而非字符串形式的正则表达式。
错误示例(引发报错的配置)
// 错误写法:用字符串定义正则 module.exports = { generateSW: { ignoreURLParametersMatching: ['utm_.*', 'fbclid'] } };
正确配置方式
将字符串替换为RegExp实例:
// 正确写法:使用RegExp对象 module.exports = { generateSW: { ignoreURLParametersMatching: [/utm_.*/, /fbclid/] } };
原因说明
Workbox新版本强化了配置类型校验,ignoreURLParametersMatching数组的每一项必须是带有hasIndices属性的正则对象(这是ES2018+正则的内置属性)。用字符串传入的话,校验器会判定不符合要求,进而抛出该错误。如果教程里用的是字符串形式的配置,说明教程适配的是Workbox旧版本,升级后需要调整为RegExp实例的写法。
内容的提问来源于stack exchange,提问作者EdenS
相关产品推荐
相关产品推荐

