是否可以在不使用cfx的情况下打包Firefox SDK插件?

时间:2013-10-09 17:23:22

标签: python firefox-addon zip firefox-addon-sdk xpi

我正在使用cfx xpi将我的加载项打包到.xpi文件中,如附加SDK开发指南中的指示here

我现在想在没有Add-on SDK的机器上构建我的代码,这意味着没有Python,也没有cfx。是否可以这样做,最好是从命令行执行?

我尝试过简单地将MyAddon文件夹压缩到MyAddon.zip,然后将其重命名为MyAddon.xpi,但是当我尝试在Firefox上安装它时,我收到错误消息“此附加组件不能是安装,因为它似乎是腐败的。“

任何和所有帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

目前,如果要使用Addon SDK,则需要cfx工具来构建加载项。构建过程包括映射依赖关系,在bootstrap.js文件中添加无重启插件,以及一些文件以使其可通过Firefox加载。只是压缩它并将其称为xpi将无法解决问题。

Addon-SDK团队正在研究使您可以将用于开发的相同目录结构直接加载到Firefox中的选项,从而删除构建步骤:Proposal

我在几周前的SDK工作周期间工作了JS-only builder addon,其中涉及一个基本上构建和安装另一个插件的插件。如果可以在构建服务器上运行节点,则可以提取其中的组件和node-ify。什么 - 可用于其他机器?你有什么想要实现这个设置是必要的,一台甚至没有安装python的机器?

答案 1 :(得分:0)

好的,我想出了在大约一个小时的试验和错误令人沮丧之后如何手动创建.xpi Firefox扩展程序。

Firefox运行.xpi时为所有cfx run创建的文件结构是:

myfirefoxaddonname.zip
   -> bootstrap.js
   -> defaults
         -> preferences
                 -> prefs.js NOTE: Empty by default
   -> harness-options.json
   -> resources
         -> myfirefoxaddonname
                  -> data
                          -> your stuff (CSS, JS, etc.) goes here
                  -> lib
                          -> main.js
                  -> test
   -> package.json
   -> install.rdf
   -> locales.json  NOTE: has one line by default: {"locales": []}
   -> locale NOTE: Empty by default

其中一些文件/文件夹是不必要的(例如test文件夹),但我已经加入,因为它是Firefox .xpi加载项所需的默认格式。< / p>

我发现这一点的方法是运行cfx xpi,然后导航到创建的.xpi文件,将其重命名为.zip,然后解压缩以查看其内容。