有人能指出我可以添加到我的POM以使用现代CSS缩小文件的Maven依赖吗?
在您说使用之前com.samaxes.maven:minify-maven-plugin,请注意它会破坏计算值:https://github.com/samaxes/minify-maven-plugin/issues/161
事实上,任何基于YUI Compressor的CSS minifier都会破坏计算值:https://github.com/yui/yuicompressor/issues/268
并且com.samaxes.maven:minify-maven-plugin/ YUI会破坏文件,如果它包含某些序列,例如注释的结尾*/*…(例如在缩小的Bootstrap重新启动中找到):https://github.com/yui/yuicompressor/issues/313.
因此,Maven没有适用于现代CSS的CSS缩小器吗?
我正在研究遗留项目,它是一个Vaadin组件,它使用Maven YUI插件来缩小和连接javascript文件.有40个js文件.
YUI插件可以正常工作,缩小40个js文件并将它们连接成一个文件(然后@javascript在Vaadin中引用).
由于新功能的缩小开发很痛苦,但我无法删除YUI插件,因为那时我需要@javascript为所有40个js文件添加注释.
有没有办法让YUI聚合而不是缩小.我已经阅读了文档并试图改变目标(即仅限于jslint),但如果我不使用compress目标,我似乎无法聚合.
我在这里错过了什么吗?
这是我的YUI配置:
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.5.1</version>
<executions>
<execution>
<id>jslint</id>
<goals>
<goal>jslint</goal>
</goals>
<configuration>
<includes>
<include>**/*.js</include>
</includes>
<excludes>
<exclude>**/VAADIN/js/*.js</exclude>
<exclude>**/depends/*.js</exclude>
</excludes>
</configuration>
</execution>
<execution>
<id>minify</id>
<goals>
<goal>compress</goal>
</goals>
<configuration>
<nosuffix>true</nosuffix>
<force>true</force>
<excludeWarSourceDirectory>true</excludeWarSourceDirectory>
<linebreakpos>-1</linebreakpos>
<aggregations>
<aggregation>
<inputDir>target/classes/[path]/components</inputDir>
<removeIncluded>true</removeIncluded>
<output>${project.build.directory}/classes/[path].js</output>
<includes>
<include>**/*.js</include>
<include>**/Copyright.txt</include>
</includes>
<excludes>
<exclude>**/depends/d3_3.4.6.js</exclude>
</excludes>
</aggregation>
</aggregations>
<includes>
<include>**/*.js</include>
<include>**/[project.name].css</include>
</includes>
<excludes>
<exclude>**/depends/*.js</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
Nb我也在jslint目标中使用聚合配置尝试了上述内容,没有任何乐趣.
必须有一种方法来停止压缩(我知道YUI是一个压缩插件,但它有其他功能(如lint),所以我假设你可以关闭压缩).此外,Vaadin的@javascript注释采用逗号分隔的js文件列表.我觉得添加40会太多了,但也许有一种方法@javascript可以获取一个目录.(虽然文档没有提到这一点)