我有一个使用Spring Boot和Angular 1, Maven和Wro4j的小web应用程序,我想尝试一下Angular 2,我是全新的。
我使用Maven/Wro4j 1.8.0在编译时最小化,并获得一个单独的js文件,用于angular依赖项,然后在我的index.html头文件中使用。虽然它可以在我的angular 1应用程序中工作,但现在最小化失败了。我用jsMin
作为处理器。处理webjar:angular__compiler/2.1.1/bundles/compiler.umd.js
失败
在wro4j文档中挖掘,我发现了ngAnnotate
处理器,这可能是我问题的解决方案。但是我还有两个问题:
- 我将ng-annotate 1.2.1添加到我的pom.xml (wro4j依赖),但由于对acorn的传递依赖不满意,它失败了(ng-annotate 1.2.1 pom依赖于acorn[2.6.4,2.7),并且Maven中心没有这样的版本)。为了解决这个问题,我将ng- annotatepom编辑为使用acorn 2.7.0,这可能不是最佳解决方案。
- 在获得我的依赖关系OK并将
ngAnnotate
添加到处理器列表(在jsMin
之前)之后,我得到这个错误消息:
处理器在这个环境下不被支持
它似乎试图运行ng-annotate,但没有找到它。Wro4j文档指出"实现假设安装了所需的npm"。我认为(似乎是错误的)在pom中添加ng- annotated webjar就足够了。我错过了什么?
注意:我真的很想继续让Maven处理所有的配置(Java和Js),这之前工作,而不是切换到Js依赖解决方案。我从未使用过任何npm命令,也没有grunt,也没有bower,到目前为止也从未使用过它。
wro4j使用ng-annotate的方式是,它只是在项目文件夹中执行命令ng-annotate
。
所以这可能是由于你的PATH变量没有正确配置,并且没有引用包含ng- annotation的文件夹,无论你是通过webjar还是npm安装它。
例如,如果您使用Eclipse Configurations,您可以在"Environment"选项卡中重新设置PATH变量。
找出正确的路径:对于webjar,搜索一下ng注释的npm可执行文件是从哪里提取出来的。对于NPM,打开终端,看看ng-annotate是否工作(它必须与npm install -g ng-annotate
一起全局安装),然后显示env变量:echo $PATH
或可执行文件的路径:which ng-annotate
。
我有同样的错误,在我的情况下,Maven没有在PATH中引用/usr/local/bin
。