AngularJS 開発時は圧縮版は使わない

AngularJS 絡みでエラーが発生したときに、コンソールログに出力される内容がさっぱり分からない。例えば以下のようなログ。

Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.0rc1/$injector/modulerr?p0=simulator&p1;=Ref...gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.0rc1%2Fangular.min.js%3A17%3A4) MINERR_ASSET:20
(anonymous function) MINERR_ASSET:20
(anonymous function) angular.js:3064
q angular.js:196
e angular.js:3032
Nb angular.js:2974
Mb.c angular.js:1124
Mb angular.js:1140
Hc angular.js:1091
(anonymous function) angular.js:17898
l jquery-2.0.3.js:2913
c.fireWith jquery-2.0.3.js:3025
x.extend.ready jquery-2.0.3.js:398
S jquery-2.0.3.js:93

今時のライブラリにしては不親切だべと思いながらエラー原因を探って検索していたところ、AngularJS の圧縮されてない版の js ファイルを使うようにするといいよ、といった外国人のコメントを見つけた。

次のように angular-xxx.min.js を読み込んでいたところを angular-xxx.js に変えていったところ、親切なエラーログが出るようになった。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-resource.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

分かりやすくなったエラーログ。

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
ReferenceError: ExampleCtrl is not defined
    at http://example.com/static/js/all.min.js:516:21
    at Object.invoke (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular.js:3121:25)
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular.js:3045:37
    at Array.forEach (native)
    at forEach (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular.js:196:11)
    at loadModules (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular.js:3032:5)
    at createInjector (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular.js:2974:11)
    at doBootstrap (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular.js:1124:20)
    at bootstrap (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular.js:1140:12)
    at angularInit (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular.js:1091:5) angular.js:60
(anonymous function) angular.js:60
(anonymous function) angular.js:3064
forEach angular.js:196
loadModules angular.js:3032
createInjector angular.js:2974
doBootstrap angular.js:1124
bootstrap angular.js:1140
angularInit angular.js:1091
(anonymous function) angular.js:17898
l jquery-2.0.3.js:2913
c.fireWith jquery-2.0.3.js:3025
x.extend.ready jquery-2.0.3.js:398
S jquery-2.0.3.js:93
Last updated on July 7, 2015