使用Wro4j缩小Angular2的问题

时间:2016-11-06 13:40:16

标签: java angularjs maven wro4j

我有一个使用Spring Boot和Angular 1,Maven和Wro4j的小型网络应用程序,我想试试Angular 2,我是全新的。

我使用Maven / Wro4j 1.8.0在编译时缩小并获得角度依赖的单个js文件,然后我在index.html标头中使用它。虽然它适用于我的角度1应用程序,但缩小现在失败了。我使用jsMin作为处理器。处理webjar:angular__compiler/2.1.1/bundles/compiler.umd.js时失败。

在wro4j doc中,我找到了ngAnnotate处理器,这可能是我问题的解决方案。但我还有两个问题:

  • 我在我的pom.xml(wro4j依赖项)中添加了ng-annotate 1.2.1但由于对acorn的传递依赖性不满意而失败(ng-annotate 1.2.1 pom取决于acorn [2.6.4,2.7]),并且在Maven中心没有这样的版本)。为了避免这种情况,我编辑了ng-annotate pom以使用acorn 2.7.0,这可能不是最好的解决方案。
  • 在获得我的依赖关系确定并将ngAnnotate添加到处理器列表(jsMin之前)之后,我收到以下错误消息:
  此环境不支持

处理器

它似乎试图运行ng-annotate并且找不到它。 Wro4j文档指出“实现假定已安装所需的npm”。我认为(错误地,似乎)将ng-annotate webjar添加到pom就足够了。我错过了什么?

注意:我真的想继续让Maven处理以前工作过的所有配置(Java和Js),而不是切换到js依赖解决方案。我从未使用任何npm命令,也没有使用过grunt,也没有使用过bower,到目前为止从未需要它。

1 个答案:

答案 0 :(得分:1)

wro4j使用ng-annotate的方式,它只是在项目文件夹中执行命令ng-annotate

所以这可能是由于你的PATH变量未正确配置而且没有引用包含ng-annotate的文件夹,无论你是通过webjar还是npm安装它。

例如,如果使用Eclipse配置,则可以在“环境”选项卡中重新设置PATH变量。

找出正确的道路: 对于webjar,请搜索提取ng-annotate npm可执行文件的位置。 对于NPM,打开终端,查看ng-annotate是否有效(必须使用npm install -g ng-annotate全局安装),然后显示env变量:echo $PATH或可执行文件的路径:which ng-annotate

我遇到了同样的错误,在我的情况下,Maven没有在PATH中引用/usr/local/bin