当我使用 grunt 构建它时,我的 Angular 项目运行良好。但是当我编译它时(缩小 JavaScript 并将它们全部连接在一起),我看到了一个错误。我怎么知道问题是什么?调试缩小的文件太困难了。
如果有人面临类似的情况,请提出建议。提前致谢。
最佳答案
就像 @Sirko 建议的那样,使用源映射是追踪此问题的有用方法。
但是,当 Angular 项目在缩小方面失败时,最常见的罪魁祸首是依赖注入(inject)。
例如,假设您有一个 Controller :
module('test').controller('TestCtrl', function($scope, $location) {
$scope.foo = 100;
});
缩小器会将其变成:
module('test').controller('TestCtrl', function(a, b) {
a.foo = 100;
});
现在你的注入(inject)坏了!有多种解决方案,但最常见的是传入数组:
module('test').controller('TestCtrl', ["$scope", "$location", function($scope, $location) {
$scope.foo = 100;
}]);
另一种常见的方法是将 $inject
添加到您的函数中:
module('test').controller('TestCtrl', TestCtrl);
function TestCtrl($scope, $location) {
$scope.foo = 100;
};
TestCtrl.$inject = ["$scope", "$location"];
如果您已经在做类似的事情,请返回并仔细检查一切是否都正确执行。也有一些方法可以使其自动化。如果仍然发生,控制台中会出现什么错误?
关于javascript - 如何测试缩小后的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962132/