【问题标题】:Is it possible to package a Firefox SDK add-on without using cfx?是否可以在不使用 cfx 的情况下打包 Firefox SDK 插件?
【发布时间】:2013-10-09 17:23:22
【问题描述】:

我目前正在使用 cfx xpi 将我的插件打包到 .xpi 文件中,按照插件 SDK 开发指南中的 here 说明。

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    几周前,我在 SDK 工作周期间处理了 JS-only builder addon,其中涉及一个插件,主要是构建和安装另一个插件。如果您可以在构建服务器上运行节点,您可能可以提取其中的组件并将它们节点化。那台机器上有什么可用的?你想用一台甚至没有安装 python 的机器来完成这个设置是必要的吗?

    【讨论】:

    • 我们有专门的机器在工作,我们通常不允许要求任何特殊的设置或安装。我认为假设不会安装 Python 是一个错误。不过,感谢您的明确回答,我知道我肯定需要 cfx,我会将 sdk 代码添加到交付中并从那里开始工作。
    • 我们真的很想不需要 CFX(这样开发目录就是要安装的东西),但这还有很长的路要走。为什么你需要在那些机器上构建它,你不能只是传递构建的xpi吗?
    【解决方案2】:

    好的,经过大约一个小时的令人沮丧的试验和错误,我想出了如何手动创建 .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,然后解压缩以查看其内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多