javascript - 为什么我的 Javascript 可以正常运行,但缩小后就不行了?

标签 javascript angularjs gruntjs grunt-contrib-uglify

我正在开发一个网络应用程序,它使用 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/

相关文章:

requirejs - 尝试使用 grunt-contrib-requirejs 将所有 JS 压缩到一个文件

java - 独立的前端应用程序 - 构建和部署策略

javascript - 如何从多个 kaminari 页面中选择全部

javascript - 多次 Backbone 渲染 View

javascript - Dropzone.js 回调访问 Angular 作用域

javascript - 如何将数据从ng-view传递到位于Angularjs中index.html的导航栏

javascript - Prop (对象列表)更新后 react 不渲染

javascript - 防止浏览器不记得密码

javascript - 根据条件为变量赋值的最简单方法

command-line - TeamCity 构建运行程序无法识别可执行文件