【问题标题】:Maven YUI Compressor, concat but don't minify (turn compression off)Maven YUI Compressor,concat 但不缩小(关闭压缩)
【发布时间】:2015-07-22 08:07:36
【问题描述】:

我正在处理一个遗留项目,它是一个 Vaadin 组件,它使用 Maven YUI 插件来缩小和连接 javascript 文件。有40个js文件。

YUI 插件可以正常工作,将 40 个 js 文件缩小并将它们连接到一个文件中(然后在 Vaadin 中使用 @javascript 引用)。

由于新功能的缩小开发很痛苦,但我无法删除 YUI 插件,因为那时我需要为所有 40 个 js 文件添加 @javascript 注释。

有没有办法让 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>

N.b.我也尝试过上面的 jslint 目标中的聚合配置,但没有任何乐趣。

必须有一种方法可以停止压缩(我知道 YUI 是一个压缩插件,但它还有其他功能(例如 lint),所以我假设你可以关闭压缩)。此外,Vaadin 的 @javascript 注释采用逗号分隔的 js 文件列表。我觉得添加 40 会太多,但也许@javascript 有办法获取目录。 (虽然文档没有提到这一点)

【问题讨论】:

    标签: java maven vaadin yui vaadin7


    【解决方案1】:

    决定回答这个我找到了一个解决方案,为任何找到它的人开派对,部分原因是它没有得到任何其他答案。

    该解决方案的灵感来自answer,有人向运营商询问我需要什么。 @Mady 指出插件配置中的不同包含/排除

    长话短说,您可以在缩小器中排除所有 .js 文件将它们包含在同意器中:

    <execution>
      <id>minify</id>
      <goals>
        <goal>compress</goal>
      </goals>                      
      <configuration>
        <nosuffix>true</nosuffix>
        <force>true</force>
        <excludeWarSourceDirectory>true</excludeWarSourceDirectory>
        <linebreakpos>-1</linebreakpos>
        <aggregations>
          <aggregation>
            <includes>
              <include>**/*.js</include> <!-- INCLUDES FOR CONCATENATION -->
            </includes>
          </aggregation>
        </aggregations>
        <excludes>
          <exclude>**/*.js</exclude> <!-- EXCLUDE ALL JS FROM MINIFICATION -->
        </excludes> 
      </configuration>
    </execution>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多