Grunt.js连接并打破angular.js项目?

时间:2014-05-06 22:03:25

标签: javascript node.js angularjs gruntjs

我有一个Angular.js项目。我可以使用grunt发球,它运行得很好。但是,当我将它构建到dist文件夹时,它将不会运行并且控制台会抛出错误:

Uncaught Error: [$injector:modulerr] Failed to instantiate module designSystemApp due to:
Error: [$injector:unpr] Unknown provider: a
http://errors.angularjs.org/1.2.6/$injector/unpr?p0=a
at http://0.0.0.0:9000/scripts/vendor.js:3:30474
at ...<omitted>...2) 

构建发生时没有错误,文件(Bower组件)连接到vendor.js。但浏览器出错了。错误是针对最小化文件,因此调试错误有点困难。有人见过这个吗?

我的grunt文件在这里:https://gist.github.com/smlombardi/7fa15161b60c2f63f416

我有点失落。感谢。

1 个答案:

答案 0 :(得分:2)

您可以通过各种方式处理依赖注入。 E.g:

function injectableFunc($someService, someOtherDependency) {...}

['$someService', 'someOtherDependency', 
    function (thisWillBeSomeService, nameDoesNotMatter) {...}]

主要区别在于第二种形式“幸存”缩小,因为依赖关系由数组的第一个字符串项标识(并且字符串不会缩小)。
第二种形式在缩小后会中断,因为变量名称(用于识别注射剂)会发生变化。

如果您的工作流程包括缩小(应该如此),您可以:

  1. 使用第二种形式
  2. 使用 ngmin 进行缩小,可以在不破坏应用的情况下处理第一种形式。