若是你是但愿看 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