2013-10-09 44 views
1

我正在使用cfx xpi将附加组件打包到.xpi文件中,如附件SDK开发指南中的指示here所示。是否可以在不使用cfx的情况下打包Firefox SDK加载项?

我现在想在没有附加SDK的机器上构建我的代码,这意味着没有Python,也没有cfx。有没有可能做到这一点,最好从命令行?

我试着简单地将MyAddon文件夹拉到MyAddon.zip,然后将其重命名为MyAddon.xpi,但是当我尝试在Firefox上安装它时,出现错误消息“This add-on could not被安装,因为它似乎是腐败的。“

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

回答

3

目前,如果您想使用Addon SDK,您需要使用cfx工具来构建附加组件。构建过程包括映射依赖关系,为不重新启动的插件添加bootstrap.js文件以及一些文件,以使其可通过Firefox加载。只需将其压缩并将其称为xpi就无能为力。

附加组件-SDK团队正在考虑的选项,使您用于开发能够直接加载到Firefox相同的目录结构,消除构建步骤:Proposal

我在SDK中曾在JS-only builder addon几个星期前的工作周,涉及一个基本上构建和安装另一个插件的插件。您可以将它和节点的组件(如果可以在构建服务器上运行节点的话)组装起来。那台机器上有什么可用的东西?你试图完成这个设置是必要的,甚至没有安装python的机器?

+0

我们有建筑工作专用机器,我们通常不允许请求任何特殊设置或安装。我认为假设Python不会被安装是一个错误。感谢您的明确答案,但我知道我一定会需要cfx,我会将sdk代码添加到交付中并从那里开始工作。 – BeneGal

+0

我们真的不想要CFX(因此开发目录与安装的是相同的),但这仍然是一种解决方法。为什么你需要在这些机器上构建它,难道你不能传递构建的xpi吗? – jsantell

0

好吧,我想出了如何在大约一个小时的尝试和错误之后手动创建.xpi Firefox扩展。

当您运行cfx run火狐创建所有.xpi文件结构是这样的:

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加载项要求。

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

相关问题