ionic(cordova)で本番環境、開発環境を切り替える

ionicに限った話じゃないかもしれないけど。
今回やりたかったのは、本番と開発でつなぎこむAPIのURL等を切り替えたりしたかった。

今回は少し調べて、node-env-fileというのを使った。
また、gulp-concatも使ってる。

今回は以下のようなファイル構成を想定。環境によって切り替えたい値はここで定義するイメージ。

www/js/config/development.js
www/js/config/staging.js
www/js/config/production.js

development.js

angular.module('starter.values')
  .value('config', {
    api_url: "http://example.com"
  });

こんなようなファイルを環境ごとにつくるイメージ。

インストー

$ npm install node-env-file

.env ファイルを新規で作成

# mode=production
# mode=staging
mode=development

gulpfile.jsを編集

var env = require('node-env-file');

env(__dirname + "/.env");
var conffile = "config." . process.env.mode . ".js";

gulp.task("js.concat-values", function() {
  return gulp.src(["www/js/config/" + confifile])
    .pipe(concat("config.js"))
    .pipe(gulp.dest("www/build/js"));
});

あとはwww/index.htmlで上記つくったファイルを読み込む

<script src="build/js/config.js"></script>                                                                                                                                                                         

なんかヌケがありそうだけどイメージはこんな感じ。あとで追記するかも。以上です。