Angular.js ng-min minify対策


Angular.js のコードを書いていて、
Railsassets:precompileGrunt でJSを圧縮するときに
ng-min を使ってやると、bracket annotation を勝手にやってくれるのだが、
時々、効かない部分がある。

起こる可能性が高いのは、directive を使ったとき。
DI の時に、明示的に bracket annotation を追加してやると、うまくいく。

ngmin は、まだ bracket annotation を対応しきれてない部分があり、
directive 内の controller がその一つ。

angular.module('whatever').directive('myDirective', function() {
  return {
    controller: function($scope, $foo, $bar) {
      ...
    }
  }
});

こうすると正常に minify される。
angular.module('whatever').directive('myDirective', function() {
  return {
    controller: ['$scope', '$foo', '$bar', function($scope, $foo, $bar) {
      ...
    }]
  }
});

Share this

Related Posts