2015年2月18日水曜日

AngularJSのコードをminify対応にするためのベストプラクティス

AngularJSはDependency Injectionをするので書き方によってはminifyした時にコードが破損してしまう場合がある。

例えばこのようなコードは破損する。

var app = angular.module('app', []);
app.controller('AppCtrl', function ($scope, $location, $interval, $timeout) {
}

ベストプラクティスはこれ。(だと思う)

var app = angular.module('app', []);
app.controller('AppCtrl', ['$scope', '$location', '$interval', '$timeout',  function ($scope, $location, $interval, $timeout) {
}

面倒でもfunctionの引数の定義の通りをfunctionの前に記述する。

このことはAngularJS公式チュートリアルの「A Note on Minification」に書いてあった。

AngularJS: Tutorial: 5 - XHRs & Dependency Injection

こちらにも同じ議論がある。

javascript - Angularjs minify best practice - Stack Overflow