若是你是但願看 api 那建議你去這裏,本文只是一個思路不會提供代碼。前端
ionic 打包其實很簡單, ionic build 一下就好了。可是當你須要切換 api 接口,支付寶、推送等插件的 appid(通常來講會分爲開發環境,qa 環境,生產環境)時,會很煩而且容易出錯。不知道誰說過,好的工程師就應該懶,代碼能完成的事情,堅定不動手。node
ionic build 其實就是完成 ionic prepare(其實就是生成 www 目錄)和 ionic compile 兩個步驟。hooks 也會在他們以前或者以後執行,我這裏以 before_prepare、after_prepare 兩個勾子爲例:git
before_prepare: ionic prepare 以前執行,也就是生成 www 目錄以前。這個時候適合作代碼壓縮(gulp)、刪除沒必要要文件(好比sass)。gulp 的部分就不再用去手動執行 gulp build —release 了。github
after_prepare: ionic prepare 以後執行,這個地方就能夠作一些 appid 的替換工做,咱們能夠經過 process.env.CORDOVA_CMDLINE 獲取到命令行輸入。例如我輸入 ionic build —dev 或者 ionic build —release ,我就能夠拿到當前打包須要的參數是 dev 本地開發配置,release 線上生產環境配置。gulp
不知道你們在前端規範化的時候有沒有使用過 git hooks。幫助代碼規範的神器,簡而言之就是 commit 的時候,會觸發一次檢查代碼是否規範的程序。api
本文的 hook 與該方法相似,使用 nodejs 來獲取參數作文件操做生成工程。nodejs 操做文件相關的代碼我就不貼了(實際上是由於 node 根本不會寫)。提供一些hooks 實例,這些代碼都很棒,你們能夠去學習一下:sass
https://gist.github.com/dpogue/4100866
http://devgirl.org/2013/11/12/three-hooks-your-cordovaphonegap-project-needs/
https://github.com/lanceli/cnodejs-ionic/tree/master/hooksapp
但願看完本文,你們能對 ionic 打包的流程作一個更自動化的改造。仍是那句話:好的程序猿,應該懶起來。ionic