关于将闭包编译器集成到构建过程中的建议

Advice on integrating Closure Compiler to build process

本文关键字:过程中 构建 集成 闭包 编译器      更新时间:2023-09-26

我们希望在构建过程中使用 Google Closure,如下所示:

  • 在开发模式下,包括 BASE .js并动态添加脚本标记
  • 在生产中,使用缩小和所有其他冷却的东西

这是一个在Tomcat上运行的Java项目,我们正在从Maven过渡到Gradle,并使用Jenkins设置了持续集成。我们使用Apache Tiles作为前端技术。

我想出了一个可能的解决方案,但我觉得它又痛苦又丑陋,想知道是否有更好(更干净、更简单等)的解决方案。

我的臭解决方案:

使用 Tomcat 上下文参数来标识生产模式。在 JSP 文件中,检查此变量并相应地包含 Closure 的基.js或缩小的 js 文件。

那么......还有其他建议吗?可能有优点/缺点?

我为此使用Grunt。Grunt 是一个自动化前端缩小、编译、单元测试等的工具。

网址: http://gruntjs.com/getting-started

在 Grunt 中,您可以创建一个 Gruntfile 并注册一个由一个或多个可重用配置组成的任务。配置的作用类似于:"缩小此目录中的所有文件并输出到该文件"。因此,您要做的是注册两个任务:一个用于开发,一个用于生产,具有一些通用的配置,以及一些专门针对该环境的配置。

您可以将 Tomcat 上下文参数作为参数(最干净)传递给 Grunt,或者将其作为 Gruntfile 中的环境变量读取并在配置中创建 if 分支。

Grunt 有很多插件:您需要的插件已经可用:

  • 有条件地包含/排除文件:本机支持
  • 生成脚本标记:https://github.com/Zolmeister/grunt-sails-linker
  • 谷歌闭包编译器:https://github.com/gmarty/grunt-closure-compiler 或 https://github.com/blaise-io/grunt-gcc-rest