我正在开发一个网络应用程序,它使用 HTML + Javascript (Angular 1.5.0) + CSS 的前端。当我在本地主机上运行该网站时,该网站运行良好。我有一个/index.html
文件。该文件导入我的 JavaScript 代码,如下所示:<script src="/app/app.js"></script>
但现在我刚刚使用 Grunt 实现了自动 linting、丑化等。 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 缩小后的文件却不能?我该如何修复它?
最佳答案
您的 Angular 组件正在被缩小,并且无法知道要注入(inject)什么服务。您应该装饰您的 Controller 和其他部件,以使 Angular 正常工作。在这里阅读:Angularjs minify best practice
关于javascript - 为什么我的 Javascript 可以正常运行,但缩小后就不行了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36830689/