【问题标题】:How to migrate manifest version 2 to v3 for chrome extension?如何将清单版本 2 迁移到 chrome 扩展的 v3?
【发布时间】:2020-11-28 04:00:24
【问题描述】:

我不知道如何将我的 chrome 扩展清单 v2 升级到 v3

我检查了https://developer.chrome.com/extensions/migrating_to_manifest_v3,但它没有提到 manifest.json

知道我的清单中需要更改什么:-

    "name": "My Extension",
    "version": "1.0.0",
    "short_name": "Ex",
    "author": "User",
    "description": "cool chrome ex",
    "browser_action": {
        "default_title": "ex",
        "default_icon": "img/logo.png"
    },
    "options_page": "options.html",
    "options_ui": {
        "page": "options.html",
        "open_in_tab": true
    },
    "background": {
        "scripts": [
            "js/background.js"
        ]
    },
    "permissions": [
        "tabs",
        "background",
        "storage"
    ],
    "icons": {
        "128": "img/logo128.png"
    },
    "content_scripts": [
        {
            "run_at": "document_end",
            "matches": [
                "https://conferfly.com/*",
                "https://meet.google.com/*",
                "https://teams.microsoft.com/*",
                "https://*.zoom.us/*"
            ],
            "js": [
                "js/main.js",
                "js/injected.js"
            ],
            "css": [
                "css/main.css"
            ]
        }
    ],
    "web_accessible_resources": [
        "js/options.js",
        "js/main.js",
        "js/injected.js"
    ],
    "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
} 

提前谢谢你


这是用于conferfly 扩展

【问题讨论】:

  • 它说“用 manifest.json 中的 background.service_worker 替换 background.page 或 background.scripts。注意 service_worker 字段采用字符串,而不是字符串数组。”当然,将 manifest_version 中的 2 更改为 3。

标签: google-chrome-extension


【解决方案1】:

【讨论】:

    【解决方案2】:

    我也在寻找同样的东西。感谢用户 wOxxOm 的帮助,我已经弄清楚了清单文件中要更改的内容。以下是如何将 manifest.json 从 v2 迁移到 v3 的示例。

    首先是将manifest_version 键从2 更改为3

    //Manifest v2
    "manifest_version": 2
    
    //Manifest v3
    "manifest_version": 3
    

    如清单迁移指南中所述,pageActionbrowserAction API 将统一在 action API 下。这意味着您需要将browser_actionpage_action 键更改为action

    //Manifest v2
    "browser_action": {...}
    "page_action": {...}
    
    //Manifest v3
    "action": {...}
    

    在清单 v3 中不推荐使用后台页面和后台脚本。他们被服务人员取代。这意味着manifest文件的background部分需要这样修改

    //Manifest v2
    "background": {
     "scripts": ["js/background.js"]
    }
    
    //Manifest v3
    "background": {
     "service_worker": "js/background.js"
    }
    

    声明打包后需要从web访问的资源,web_accessible_resources需要这样改

    //Manifest v2
    "web_accessible_resources": [
            "js/options.js",
            "js/main.js",
            "js/injected.js"
    ]
    
    //Manifest v3
    "web_accessible_resources": [{
     "resources": ["js/options.js","js/main.js","js/injected.js"],
     "matches": [],
     "extension_ids": []
    }]
    

    v3 中的内容安全策略是一个对象

    //Manifest v2
    "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'" 
    
    //Manifest v3
    "content_security_policy": {
     "extension_pages": "script-src 'self' 'unsafe-eval'; object-src 'self'",
     "sandbox": "..."
    }
    

    要了解更多关于您的信息,请查看this linkthis one

    【讨论】:

    • 哇,伙计。你救了我的命。让其他人知道。即使 matchesextension_ids 尚未使用,它们也必须存在。
    • background.js 文件也必须移动到根文件夹,所以需要将“js/background.js”更改为“background.js”
    • 哇,这些迁移指南太糟糕了。
    猜你喜欢
    • 2021-09-16
    • 2021-03-26
    • 1970-01-01
    • 2012-08-02
    • 2012-08-02
    • 2021-09-30
    • 2021-09-21
    • 2012-09-03
    相关资源
    最近更新 更多