g0v/laweasyread-front

A mechanism to create packages

kong0107 opened this issue · 4 comments

最好可以改完主程式後,自動(或手動):

  • 生成 Google Chrome 用的 .crx 檔
  • 生成 Mozilla Firefox 用的 .xpi 檔
  • 生成讓網頁內嵌的單一一個 .js 檔
  • 或其他未來可能需要的

而且最好是 commit 到 gh-pages 分支下,並維持允許舊版本的下載。

也許設定檔就會是像:

{
"name": "filename",
"version": "0.5.4",
"packages": [
  {
    "basename": "crx",
    "compress": "zip",
    "files": [
      "file1",
      "dir1/file2"
    ]
  },
  {
    "basename": "xpi",
    "compress": "zip",
    "files": [
      "file1",
      "dir1/file2"
    ]
  },
  {
    "basename": "js",
    "compress": "minify",
    "files": [
      "file1",
      "dir1/file2"
    ]
  },
]
}

然後只要以類似前述的設定檔,給程式執行後,就會自動生成:

  • libs/0.5.4/filename.crx
  • libs/0.5.4/filename.xpi
  • libs/0.5.4/filename.js

並複寫可能已存在的 libs/filename.* ,供「最新版」的連結。

可以參考一下 ly-crx 的 Gruntfile

題外話,我之前寫了一套 packaged app + extension, 可以用來下 http request reload extension (or packaged app)。例如存檔之後 grunt 自動下 http://127.0.0.1:246801/EXTENSION_ID 來重開。但其實我不知道一般 extension developer 的 workflow 適不適合這樣用。如果會有幫助的話可以試看看。

兩個都要裝,因為 API 的限制切成前後端

若要用 Gruntfile 製做 Firefox 外掛,需要裝 Mozilla Add-on SDK ,其所依賴的 Python 2.6 或 2.7 可至Python 官網下載,或是在 Windows 上透過MozillaBuild安裝。

使用 Mozilla Add-on SDK 前需先活化之,參閱安裝文件的 SDK Virtual Environment 段落。
於 Windows 如欲使用 setx 設定自動活化,亦需先下載 WinXP SP2 Support Tools,安裝後依此文指示模仿PATH_TO_SDK\bin\activate.bat或許可行。

原則上不用依照cfx init建構的目錄結構,只要於 package.json 設定即可--但data目錄似乎是例外,因而cfx xpi前需複製所需文件到data目錄。

References: