@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

Gruntでビルドしたかどうかを確認する

Grunt buildしたかどうかをJavaScriptで判別する方法。

方針

grunt buildでscriptタグを消すことで、ビルド前後を区別する。

grunt-processhtmlでビルド時に削除するための記法があるので利用した。

www.npmjs.com

<!-- build:remove -->
<script src="scripts/beforeBuild.js"></script>
<!-- /build -->

beforeBuild.jsで定数を定義して、別のJavaScriptで参照すればビルドしたのか、ビルドせずに実行しているのか判別できる。

AngularJSでの例

Constは定数を管理しているサービス。beforeBuild.jsの中身がこんな感じ。

'use strict';
angular.module('someCoolApp')
  .run(function(Const){
    Const.beforeBuild = true;
  });

これで、ビルドするとbeforeBuild.jsは読み込まれないのでConst.beforeBuildが未定義になる。他の場所でビルド済みかどうかを判別できる。