2013-10-09 46 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,然後解壓縮以查看其內容。

相關問題