npm run-script に環境変数を渡す方法

Node.js の環境変数の仕組みを使うと、npm run-script に環境変数を渡すことができる。

# 例えば開発モードにして Gulp ビルドする、とか。
$ DEV_MODE=true npm run gulp build:js

こんな風にすると、実行するコード中、例えば gulpfile.js 内とかで、process.env.DEV_MODE の値を参照できるようになる。これを利用すれば、開発時のみビルドするコードにモックスクリプトを混ぜ込むとか、ビルド時に Uglify しないとかいう制御ができる。もしくはサーバ起動の方法を切り替えるようなこともできるだろう。

// 例えば gulpfile.js でのビルドタスクの処理を振り分けるイメージ
var gulp = require('gulp');

gulp.task('build:js', () => {
  if(process.env.DEV_MODE) {
    // 開発モードの時はこの方法でビルドする…
  }
  else {
    // 環境変数未指定の場合 (本番モード) は以下の方法でビルドする…
  }
});

先程の $ 環境変数=値 npm run スクリプト名 という書き方は、Mac や Linux では上手く動作するが、Windows では上手く動作させられない場合がある。Windows でも上手く環境変数を渡す方法は次回紹介する。

次回: