ngmin没有使用多个文件注释依赖项

时间:2013-09-12 16:39:12

标签: angularjs gruntjs

这是我在app.js中的内容 -

var app = angular.module("app", []);

在我的controller.js中,我有 -

app.service("Store", function() {
this.products = { item: "apple" };
});
app.controller("AppCtrl", function ($scope, Store) {
$scope.products = Store.products;
})

当我通过ngmin运行时,我得到了这个 -

var app = angular.module('app', []);app.service('Store', function () {
  this.products = { item: 'apple' };
});
app.controller('AppCtrl', function ($scope, Store) {
  $scope.products = Store.products;
});

正如您所看到的,它没有正确地注释依赖项。但是,如果我在controller.js中有var app = angular.module("app", []);,它就可以正常工作 -

var app = angular.module('app', []);
app.service('Store', function () {
  this.products = { item: 'apple' };
});
app.controller('AppCtrl', [
  '$scope',
  'Store',
  function ($scope, Store) {
    $scope.products = Store.products;
  }
]);

如何让ngmin使用单独的文件?

1 个答案:

答案 0 :(得分:1)

官方ngmin doc

  

理想情况下,您应该连接所有文件,然后在连接文件上运行一次ngmin。

我不确定,但我认为这是ngmin使用的库astral-angular-annotate的技术限制。模块声明过于严格。

在我工作的地方,在我们的Gruntfile中,我们先用grunt/concat连接所有文件,然后在生成的文件上运行grunt/ngmin。因此,我们只需要在我们的webapp正文中包含一个<script>元素,这非常方便。