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:
- Mozilla Add-on SDK Documentation
- Node.js: OS#type and #platform
- grunt-shell