我尝试找到Maven插件以使用ES6代码最小化Javascript文件。我尝试了minify-maven-plugin 1.7.6,但我认为它不支持ES6(函数中默认参数的错误语法)。我也尝试了一些插件来将ES6丑化为es5,但是它也不起作用,所以也许sb遇到了同样的问题。最终,请为fronted-maven-plugin提供一些简短说明,说明如何通过Web Pack或babel进行此操作,但是我不确定我可以使用node js。
配置minify-maven-plugin:
<executions>
<execution>
<id>default-minify</id>
<goals>
<goal>minify</goal>
</goals>
<configuration>
<cssSourceDir>static/css</cssSourceDir>
<cssSourceIncludes>
<cssSourceInclude>**/*.css</cssSourceInclude>
</cssSourceIncludes>
<jsSourceDir>static/js</jsSourceDir>
<jsSourceIncludes>
<jsSourceInclude>*.js</jsSourceInclude>
<jsSourceInclude>legacy/**/*.js</jsSourceInclude>
</jsSourceIncludes>
</configuration>
</execution>
</executions>
minfiy-maven-plugin错误:
[ERROR] missing ) after formal parameters at lazy-module-test.js line 1572:29
function mojaFunkcja(x = 1, y, z) {
^
[ERROR] missing } after function body at lazy-module-test.js line 1572:29
function mojaFunkcja(x = 1, y, z) {
^
配置frontend-maven-plugin
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>install grunt grunt-cli grunt-contrib-uglify</arguments>
</configuration>
</execution>
<execution>
<id>grunt build</id>
<goals>
<goal>grunt</goal>
</goals>
</execution>
</executions>
<configuration>
<nodeVersion>v6.9.1</nodeVersion>
</configuration>
frontend-maven-plugin中的错误
[INFO] message: 'Unexpected token operator «=», expected punc «,»',
[INFO] filename: '../../../../../../../src/main/webapp/static/js/lazy/module-test/controllers/testCtrl.js',
[INFO] line: 150,
[INFO] col: 27,
[INFO] pos: 4283 }
第150行:
function mojaFunkcja(x = 1, y, z) {
答案 0 :(得分:0)
此Maven插件对我来说效果很好:https://github.com/SpyrosPac/frontend-files-uglifier
它可以分别使用Uglify.js和CSSO缩小JS和CSS文件。两者都是通过Rhino执行的,因此不需要Node。
性能很好,尤其是当您启用仅压缩修改后的资源的选项时。
答案 1 :(得分:0)
在您的插件配置下添加 <jsEngine>CLOSURE</jsEngine>
。默认情况下,minify-maven-plugin
使用不符合 ES6 的 YUI compressor
。但是,另一个受支持的 Javascript 引擎,即 Google Closure
符合 ES6。下面给出了来自 pom.xml
的工作示例条目:
<plugin>
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7.6</version>
<executions>
<execution>
<id>minify-resources-exec</id>
<phase>generate-resources</phase>
<configuration>
<charset>UTF-8</charset>
<jsSourceDir>app/${minifyJsSrcDir}</jsSourceDir>
<jsSourceIncludes>**/*.js</jsSourceIncludes>
<jsEngine>CLOSURE</jsEngine>
<verbose>true</verbose>
<jsTargetDir>${minifyJsSrcDir}</jsTargetDir>
<jsFinalFile>${minifyJsFinalFile}</jsFinalFile>
</configuration>
<goals>
<goal>minify</goal>
</goals>
</execution>
</executions>
</plugin>
更多信息,请参考:https://samaxes.github.io/minify-maven-plugin/minify-mojo.html