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

Python 是否可以在不使用cfx的情况下打包FirefoxSDK插件?,python,firefox-addon,zip,firefox-addon-sdk,xpi,Python,Firefox Addon,Zip,Firefox Addon Sdk,Xpi,我目前正在使用cfx xpi将我的加载项打包到.xpi文件中,如《加载项SDK开发指南》中所述 我现在想在一台没有附加SDK的机器上构建代码,这意味着没有Python,也没有cfx。是否可以这样做,最好是通过命令行 我尝试过简单地将MyAddon文件夹压缩到MyAddon.zip,然后将其重命名为MyAddon.xpi,但当我尝试在Firefox上安装它时,会收到错误消息“此加载项无法安装,因为它似乎已损坏。” 非常感谢您的帮助。目前,如果您想使用插件SDK,您需要cfx工具来构建插件。构建过程

我目前正在使用
cfx xpi
将我的加载项打包到.xpi文件中,如《加载项SDK开发指南》中所述

我现在想在一台没有附加SDK的机器上构建代码,这意味着没有Python,也没有cfx。是否可以这样做,最好是通过命令行

我尝试过简单地将MyAddon文件夹压缩到MyAddon.zip,然后将其重命名为MyAddon.xpi,但当我尝试在Firefox上安装它时,会收到错误消息“此加载项无法安装,因为它似乎已损坏。”


非常感谢您的帮助。

目前,如果您想使用插件SDK,您需要cfx工具来构建插件。构建过程包括映射依赖项,为无重启插件添加
bootstrap.js
文件,以及一些使其可通过Firefox加载的文件。只是把它拉上拉链并称之为xpi不会起作用

插件SDK团队正在寻找一些选项,以使您用于开发的相同目录结构能够直接加载到Firefox中,从而删除构建步骤:


几周前,我在SDK工作周中开发了一个插件,该插件主要用于构建和安装另一个插件。若您可以在构建服务器上运行node,那个么您可能可以拉出该节点的组件并将其初始化。另一台机器上有什么?在一台连python都没有安装的机器上,你想实现什么样的设置才是必要的?

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

运行
cfx run
时,Firefox为所有
.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,然后解压缩以查看其内容。

我们有专门的机器用于构建,通常不允许我们请求任何特殊设置或安装。我认为假设Python不会被安装是一个错误。不过,感谢您的明确回答,我知道我肯定需要cfx,我会将sdk代码添加到交付中并从那里开始工作。我们真的不希望需要cfx(因此开发目录与将安装的目录相同),但这还有很长的路要走。为什么您需要在这些机器上构建它,您不能传递构建的xpi吗?