Manifest v3,无法加载扩展:“web_accessible_resources[0]”值无效。无效的匹配模式。无法加载清单

Hug*_*sse 4 google-chrome-extension

鉴于此 Manifest v3(使其在 v2 上运行后,我调整了一些规范以匹配 v3),在将扩展添加到 Chrome 中(加载解压后)时遇到了一些问题。

确切的错误是:

Invalid value for 'web_accessible_resources[0]'. Invalid match pattern.
Could not load manifest.
Run Code Online (Sandbox Code Playgroud)

这是清单

{
  "author": "Hugo Gresse",
  "description": "",
  "name": "app",
  "version": "1.0.0",
  "content_scripts": [
    {
      "js": [
        "src/entries/contentScript/primary/main.js"
      ],
      "matches": [
        "https://play.google.com/*"
      ]
    }
  ],
  "icons": {
    "16": "icons/16.png",
  },
  "permissions": [],
  "action": {
    "default_icon": {
      "16": "icons/16.png",
    },
    "default_popup": "src/entries/popup/index.html"
  },
  "host_permissions": [
    "*://*/*"
  ],
  "manifest_version": 3,
  "web_accessible_resources": [
    {
      "resources": [
        "assets/src/entries/contentScript/primary/main.5ebc631d.js",
      ],
      "matches": [
        "https://play.google.com/console/*"
      ],
      "use_dynamic_url": true
    }
  ]
}

Run Code Online (Sandbox Code Playgroud)

Hug*_*sse 11

根据此处的 v3 规范web_accessible_resources 细节中使用的模式matches必须仅基于 tld:

\n
\n

URL 匹配模式列表,指定哪些页面可以访问资源。仅使用来源来匹配 URL。起源包括子域匹配。路径被忽略。

\n
\n

2023 年更新:Google Chrome emits an "Invalid match pattern" error if the pattern has a path other than \'/*\'.

\n

它说的是“路径”,就我而言:console/被忽略,但它不是因为它无法加载扩展。

\n

\xe2\x9c\x85: https://play.google.com/*
\n\xe2\x9d\x8c:https://play.google.com/console/*

\n

正确的web_accessible_resources节点如下:

\n
  "web_accessible_resources": [\n    {\n      "resources": [\n        "assets/src/entries/contentScript/primary/main.5ebc631d.js",\n      ],\n      "matches": [\n        "https://play.google.com/*"\n      ],\n      "use_dynamic_url": true\n    }\n  ]\n
Run Code Online (Sandbox Code Playgroud)\n

  • 该文档具有误导性:路径不会被忽略,但实际上会阻止安装。 (7认同)