我正在开发一个使用HTML + Javascript(Angular 1.5.0)+ CSS前端的webapp。当我在本地主机上运行时,网站运行良好。我有一个/index.html
文件。此文件导入我的javascript代码,如下所示:<script src="/app/app.js"></script>
但是现在我刚刚使用Grunt实现了自动linting,uglifying等。 Grunt非常好地将我的单个Javascript文件(/app/app.cs
)转换为缩小的文件(/dist/js/app.min.js
)。我更改了/index.html
以包含缩小的Javascript:<script src="/dist/js/app.min.js"></script>
。但现在应用程序停止工作。在浏览器的开发控制台中,我看到以下错误:
angular.js:68 Uncaught Error: [$injector:modulerr] Failed to instantiate module myApp due to:
Error: [$injector:unpr] Unknown provider: a
http://errors.angularjs.org/1.5.0/$injector/unpr?p0=a
at http://127.0.0.1:8080/bower_components/angular/angular.js:68:12
at http://127.0.0.1:8080/bower_components/angular/angular.js:4397:19
at getService (http://127.0.0.1:8080/bower_components/angular/angular.js:4550:39)
at injectionArgs (http://127.0.0.1:8080/bower_components/angular/angular.js:4574:58)
at Object.invoke (http://127.0.0.1:8080/bower_components/angular/angular.js:4596:18)
at runInvokeQueue (http://127.0.0.1:8080/bower_components/angular/angular.js:4497:35)
at http://127.0.0.1:8080/bower_components/angular/angular.js:4506:11
at forEach (http://127.0.0.1:8080/bower_components/angular/angular.js:321:20)
at loadModules (http://127.0.0.1:8080/bower_components/angular/angular.js:4487:5)
at createInjector (http://127.0.0.1:8080/bower_components/angular/angular.js:4409:19)
http://errors.angularjs.org/1.5.0/$injector/modulerr?p0=raptorApp&p1=Error%…F%2F127.0.0.1%3A8080%2Fbower_components%2Fangular%2Fangular.js%3A4409%3A19)
为什么正常的Javascript文件可以正常工作,但Grunt缩小的文件不会?我该如何解决?
答案 0 :(得分:6)
您的角度组件正在缩小,无法知道要注入的服务。您应该装饰控制器和其他部件以允许Angular正常工作。请在此处阅读:Angularjs minify best practice