【问题标题】:Chrome Extension manifest.json differenceChrome 扩展 manifest.json 的区别
【发布时间】:2013-11-13 17:07:50
【问题描述】:

我正在尝试为我的 chome 网上商店的 chrome 扩展程序创建 zip 包,但很难确定 zip 包中需要哪种 manifest.json 格式。

我的第一次尝试是将我的扩展中的manifest.json(编译为.crx文件)复制到zip包中,所以zip包的内容

  • manifest.json
  • myextension.crx

但是这种方法会导致在chrome中安装扩展时无法加载后台脚本的问题。

我的第二次尝试是剥离清单 json,只留下一些字段,例如名称、描述和图标。看来我的第二次尝试成功了,因为我的扩展可以安装了。

我的方法正确吗?请指教。

【问题讨论】:

    标签: google-chrome google-chrome-extension


    【解决方案1】:

    清单文件的正确格式记录在here。话虽如此,我怀疑这个问题与您的清单文件无关,而是与您的 zip 文件的结构有关。提交 zip 文件时,请确保压缩目录的内容,而不是目录本身。

    例如下面的结构就可以了:

    manifest.json
    background.js
    ...
    

    以下是好的:

    extension/manifest.json
    extension/background.js
    

    您可能已经创建了以下情况,这是 OK,因为它将后台脚本声明为“background.js”,而它实际上位于“extension/background.js”:

    manifest.js              containing "background": {"scripts": ["background.js"] }
    extension/background.js
    

    您的第二次尝试可能成功了,因为您以正确的方式压缩了文件。

    【讨论】:

    • 嗯...根据文档,应该完全相反(ZIP 根目录,而不仅仅是内容)。
    • @ExpertSystem CRX 和 NEX 文件中的扩展文件始终位于根目录,而不是某些子目录。根据经验,我知道 CWS 正确接受并解析 manifest.json 位于根目录的 zip 文件。为了进一步支持我的主张,我在 Stack Overflow w.r.t 上发现了另一个问题。由不正确的压缩也引起的分发问题(即在 zip 中包含目录 - 请参阅 stackoverflow.com/q/15259125)。
    【解决方案2】:

    实际上,您应该上传一个仅包含扩展根目录的 ZIP 存档(不应该是 CRXed)。根据"Get Started" guide

    创建包含 manifest.json 和图标的目录的 ZIP 存档。在 Windows 上,您可以通过右键单击 myapp 并选择菜单项发送到 > 压缩(压缩)文件夹来执行此操作。在 Mac OS X 上,按住 control 并单击 myapp 并选择 Compress "myapp"。

    如果你喜欢使用命令行,你可以输入:

    zip -r myapp.zip myapp

    注意:ZIP 存档不应包含扩展程序根目录的内容,而应包含根目录本身(当然包括其所有内容)。


    (顺便说一句,我不知道为什么您的第二次尝试有效 - 根据文档不应该。)

    更新:
    在自己尝试之后,这两种方法似乎都有效。
    最重要的是,上传一个包含您的扩展内容的 ZIP 存档,并且任何CRXed 的东西。 Google 将自行生产 CRX。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-04
      • 2016-06-26
      • 2022-11-09
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多