【发布时间】:2018-04-26 16:00:48
【问题描述】:
我首先通过grunt-contrib-concat grunt 任务连接我所有的 js 文件。有了这个,一切正常(没有缩小)。
我正在尝试切换到 Google 的 Closure Compiler,以便我可以缩小它并添加源映射,首先我使用以下选项:--compilation_level WHITESPACE_ONLY 和 --formatting=pretty_print,并且我正在以相同的顺序传递文件我以前用 grunt 任务做过,所以我应该有一个类似于我以前得到的第一个输出。
注意:感谢一些崇高的文本魔术和差异检查器,我已经能够检查我最终生成的两个文件是否以完全相同的顺序获得了所有相同的控制器/服务。
我所有的控制器都没有使用注释语法(依赖在控制器之前被声明为字符串)所以我使用 ng-annotate 和 this script 来解决这个问题。
现在我的所有文件都可以缩小了。为了确定这一点,我什至在我的应用程序上声明了ng-strict-di 并暂时切换回之前的串联系统。如果我故意在控制器名称中输入错字,它会完美运行并且会失败。
因此,我认为闭包编译器应该像一个魅力一样工作......但不,当 Angular 尝试将我的第一个服务注入我的 app.run() 函数时,我正面临一个 Unknown Provider 错误。 (.config() 执行得很好,因为我在这里没有自定义依赖项以及 .run() 的三个第一个依赖项。确实是我个人实现的依赖项失败了。)
有人已经遇到过类似的问题吗?知道是什么原因造成的吗?
【问题讨论】:
标签: angularjs minify google-closure-compiler dependency-resolver