我有一个 Angular.js 项目。我可以使用 grunt serve 并且它运行完美。但是,当我将它构建到 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
我有点迷茫。谢谢。
最佳答案
您可以通过多种方式处理依赖注入(inject)。例如:
function injectableFunc($someService, someOtherDependency) {...}
或
['$someService', 'someOtherDependency',
function (thisWillBeSomeService, nameDoesNotMatter) {...}]
主要区别在于第二种形式在缩小后“幸存”,因为依赖关系由数组的第一个字符串项标识(并且字符串不会缩小)。
第二种形式在缩小后会中断,因为变量名(用于识别注入(inject)剂)发生了变化。
如果您的工作流程包括缩小(它应该),您可以:
- 使用第二种形式
- 使用 ngmin 用于缩小,可以在不破坏应用程序的情况下处理第一种形式。
关于javascript - Grunt.js 连接并中断 angular.js 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23505300/