Chrome扩展manifest.json差异

时间:2013-11-13 17:07:50

标签: google-chrome google-chrome-extension

我正在为chome webstore的chrome扩展程序创建zip包,并且难以确定zip包中需要的manifest.json格式。

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

  • manifest.json
  • myextension.crx

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

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

我的方法是否正确?请指教。

2 个答案:

答案 0 :(得分:0)

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

E.g。以下结构可以:

manifest.json
background.js
...

以下是确定:

extension/manifest.json
extension/background.js

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

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

你的第二次尝试可能有效,因为你以正确的方式压缩了文件。

答案 1 :(得分:0)

实际上你应该上传一个只包含扩展根目录的ZIP档案(不应该CRX编辑)。根据 "Get Started" guide

  

创建包含manifest.json和图标的目录的ZIP存档。在Windows上,您可以通过右键单击myapp并选择菜单项Send to>来执行此操作。压缩(zipped)文件夹。在Mac OS X上,按住Control键并单击myapp,然后选择“压缩”“myapp”。

     

如果您想使用命令行,可以输入:

     

<强> zip -r myapp.zip myapp

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


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

<强>更新
在自己尝试之后,这两种方法似乎都有效 最后,上传包含您的扩展程序内容的ZIP存档,并任何CRX ed内容。谷歌将自己生产CRX。