繁体   English   中英

用于版本控制和缩小javascript的Maven插件

[英]Maven plugin for versioning and minifying javascript

单页Javascript应用程序

我已经构建了一个复杂的ajax驱动的单页webapp,它使用一个服务于JSON的RESTful后端Web服务。 javascript被分成许多不同的文件,每个文件代表某种特征或组件。

虽然该服务已经进行了alpha测试,但我只是在没有缩小的情况下单独提供所有这些文件。 但是现在我想推出测试版,我真的需要组合文件,缩小它们并对它们进行版本化。 我想使用Maven将其添加到我的构建过程中。

Javascript文件类型

我正在使用以下“类型”的javascript文件,其中#3和#4是我关注的问题:

  1. 外部文件,例如来自Google CDN的jquery和jquery-ui。 很少更改这些版本,可以手动处理。
  2. 我自己托管的Jquery插件,例如fullcalendar或ui-layout。 同样,我很少将这些更新到新版本并可以手动处理它。
  3. 应用程序范围的JavaScript代码。 自定义javascript,分布在许多文件中,偶尔可以更改。 需要加载所有这些文件才能使应用程序正常工作。
  4. 特定于功能的JavaScript代码。 在请求特定功能时按需加载的自定义JavaScript。 此代码可能会频繁更改,并且在启动时不会加载。

建立目标

我想在构建过程中执行以下操作:

  • 将所有类型3的javascript文件连接在一起,缩小它们,并保存为具有版本号的单个文件。 例如: app-2.0.6.min.js ,其中2.0.6是maven项目版本。
  • 所有类型4文件应单独缩小并保存为单独的文件,版本号在名称中。 例如: feature-abc-56ab32de29.min.js ,其中56ab32de29是该特定文件的版本号。
  • 使用<script>标记更新HTML文件以指向具有正确版本号的javascript文件。
  • 更新加载类型4功能javascript文件的Javscript文件以指向正确的版本。

问题

  • 是否有maven插件可以协助连接?

  • 有没有maven插件可以帮助缩小? 理想情况下,我想使用Google Closure Compiler,但如果更简单,可以与其他人合作。

  • 是否有maven插件可以帮助进行版本控制?

  • 有没有办法让4型javascript文件具有独立的版本号? 理想情况下,如果文件在版本2.0.5和2.0.6之间没有变化,则用户无需下载新版本,并且其缓存版本可以正常工作。 我正在使用GIT进行源代码控制,那么有没有办法使用文件的GIT哈希码进行版本控制?

  • 有没有一种解决方案可以压缩常规HTML文件中内联的javascript而不会破坏HTML?

  • 是否有压缩和版本化我的CSS文件的解决方案?

看看yuicompressor-maven-plugin 它可以聚合各种js(以及css)文件以及缩小和混淆它们。

这是一个全新的Maven插件,针对这项任务: http//mojo.codehaus.org/webminifier-maven-plugin/

我在Maven环境中成功地整合了RequireJS优化(使用Google Closure编译器+进行连接)(对于单页JS应用程序)。 有关详细信息,请参阅我的问题和后续答案: Maven项目中的RequireJS编译与外部JS依赖项

您可以将其扩展到版本并归档缩小的JS工件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM