Chrome扩展Manifest V3加载报错:规则文件需为列表
问题解决指南
1. 规则文件格式错误("Rules file must contain a list")
Manifest V3 要求声明式网络请求的规则文件必须是数组(列表)格式,你的rules_1.json当前是单个对象,且包含不属于规则结构的testList字段,这是触发该错误的核心原因。
修改后的rules_1.json:
[ { "id": 1, "priority": 1, "action": { "type": "block" }, "condition": { "urlFilter": "||google.com/", "resourceTypes": ["main_frame"] } } ]
- 用
[]包裹规则对象,将单个规则转为数组元素; - 删除多余的
testList字段,该字段属于manifest.json中declarative_net_request.rule_resources的配置内容,不应出现在规则文件里。
2. webRequestBlocking权限拼写错误
你的permissions列表中webRequestBlocking后面多了一个空格,导致Chrome无法识别该权限,进而触发之前的权限提示。
修改manifest.json的permissions部分:
"permissions": [ "declarativeNetRequest", "webRequestBlocking", "storage", "tabs", "webRequest" ],
- 去掉
webRequestBlocking末尾的空格,确保权限名称准确。
额外提示
Manifest V3 推荐使用declarativeNetRequest替代webRequestBlocking(前者性能更优,是V3的标准方案)。如果业务逻辑允许,可以逐步迁移到声明式网络请求,减少对webRequest系列API的依赖。
内容的提问来源于stack exchange,提问作者Filip
相关产品推荐
相关产品推荐

