service_worker 脚本加载失败。 Safari 扩展程序出错,从 chrome 扩展程序转换而来

问题描述 投票:0回答:1

我已使用https://developer.apple.com/documentation/safariservices/safari_web_extensions/converting_a_web_extension_for_safari

中记录的工具将最初为 chrome 制作的网络扩展转换为 safari

项目已成功创建、构建并启动。但是我添加了一个服务工作人员,但无法正确加载它。

“由于错误,service_worker 脚本无法加载。”

我不知道如何处理这个错误,因为它根本没有提供任何信息。 Safari 开发菜单中访问后台页面进程的选项被禁用,并显示消息“服务工作线程加载失败”。

这是我的“manifest.json”

{
    "manifest_version": 3,
    "name": "My Extension",
    "version": "3.6",

    "description": "__MSG_extDesc__",
    "default_locale": "en_US",
    
    "options_ui": {
        "page": "options.html",
        "open_in_tab": false
    },
    "action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },
    "icons": {
        "128" : "icon.png"
    },
    "permissions": [
        "activeTab",
        "storage",
        "scripting",
        "clipboardWrite"
    ],
    "host_permissions": [
      "https://ajax.googleapis.com/",
      "http://myServer.com/*",
      "http://lists.w3.org/",
      "https://www.pinterest.com/*"
    ], 
    "content_scripts": [
        {
            "matches": ["<all_urls>"],
            "js": ["content-script.js"]
        }
    ],
    "background": {
        "service_worker": "background.js",
        "type": "module"
    }
}

有人对如何调试服务工作人员未加载的原因有任何好的建议/知识吗?该扩展程序在 Google Chrome 中运行时不会出现任何错误或警告。我知道以前曾有人问过类似的问题,但我的情况有所不同。我完全注释掉了 backgroung.js 脚本,但仍然无法加载我的 Service Worker,因此很难查明问题。预先感谢!

google-chrome-extension service-worker safari-extension
1个回答
0
投票

我在 chrome 到 Safari 转换后添加了后台脚本。因此,它没有包含在构建阶段中。将其添加到构建阶段解决了我的问题。 参考:https://developer.apple.com/forums/thread/710164

© www.soinside.com 2019 - 2024. All rights reserved.