簡體   English   中英

Angular javascript minification導致錯誤:$ injector:modulerr模塊錯誤

[英]Angular javascript minification cause Error: $injector:modulerr Module Error

當我定義像下面的角度時,它將導致使用縮小此javascript的問題,這是錯誤:$ injector:modulerr模塊錯誤。

angular.module('myModule').controller('MyController', function ($scope) {

});

現在,如果我按照下面的方式寫出我的角度,那么在縮小之后它會很好。

angular.module('myModule').controller('MyController', ["$scope", function ($scope) {

}]);

在縮小期間,第一種方式將$ scope轉換為其他變量名稱,看起來就是問題。 有沒有辦法避免不編寫代碼作為第二種情況?

你可以使用$inject

function MyController($scope) {
}

MyController.$inject = ['$scope'];
angular.module('myModule').controller('MyController', MyController);

如果您有某種構建過程(或者您想引入一個非常小的構建過程),請查看ng-annotate項目( https://github.com/olov/ng-annotate )。 它是一個處理您的JavaScript代碼的工具,可以幫助您避免重復自己。 它的作用基本上是閱讀代碼的第一個版本並為你生成$ inject屬性,如Pedro Nascimento的答案所示。

有幾個插件用於grunt,gulp,webpack等等,但是如果你還沒有構建過程,那么使用這個模塊也很容易。

你有這個Grunt: https ://www.npmjs.com/package/grunt-ng-annotate我很確定你可以找到webpack / gulp等相同的東西......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM