AngularJS 1.2.1 $ injector:modulerr在缩小之后,但它在缩小之前运行良好

时间:2013-11-20 07:33:46

标签: angularjs

我已经四处寻找了。有些人遇到这个问题,因为他们忘了包含某些模块,例如ngRoute或ngAnimate ......我已经包含并注入了它们。

我正在使用Yeoman来引导项目,并且应用程序在缩小之前运行良好,即使用“grunt server”运行

在缩小之后(当我运行“grunt server:dist”时),我遇到了这个问题:

Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.1/$injector/modulerr?p0=app&p1=Error%3A%20%…0(http%3A%2F%2Flocalhost%3A9000%2Fscripts%2Fd3a6bda4.vendor.js%3A1%3A11551) d3a6bda4.vendor.js:1

对此有何想法?提前谢谢。


@tschiela,谢谢你建议我看一下Gruntfile.js,但我认为应该没问题,因为我也在使用AngularJS(1.0.8)和其他项目,我使用相同的Gruntfile .js跨项目。

@Gorgi Rankovski,感谢您建议我查看我的代码,这里有一些代码,我正在使用CoffeeScript,我想我明白了你的意思,

```的CoffeeScript

angular.module('app.controllers', [])

.controller('AppCtrl', [
    '$scope', '$location'
    ($scope, $location) ->
        $scope.isSpecificPage = ->
            path = $location.path()
            return _.contains( ['/', '/index-vendor', '/404', '/signin', '/signup'], path )
])

```

2 个答案:

答案 0 :(得分:0)

最后,我明白了。

<!-- build:js scripts/vendor.js -->
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/angular-resource/angular-resource.min.js"></script>
<script src="bower_components/angular-animate/angular-animate.min.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.min.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.min.js"></script>
<script src="bower_components/angular-route/angular-route.min.js"></script>
<script src="bower_components/underscore/underscore-min.js"></script>
<!-- endbuild -->

我尝试了很多东西,最后,我发现与grunt-contrib-uglify任务有关。 (当我使用AngularJS 1.0.8时,同样的任务效果很好,很奇怪)

所以,我没有使用AngularJS文件,而是我只是做concat任务,删除了uglify步骤,现在一切都很好。

useminPrepare: {
  html: '<%= yeoman.app %>/index.html',
  options: {
    dest: '<%= yeoman.dist %>',
    flow: {
      steps: {
        'js': ['concat']
      }
    }
  }
},

答案 1 :(得分:0)

这是一种“正常”行为。 Angular对缩小非常敏感,你不应该自己做。您应该只将Angular源添加到构建的脚本中。 Miško关于最佳实践的演讲解释了这一点。您可以在此处观看:https://www.youtube.com/watch?v=ZhfUv0spHCY