关于将闭包编译器集成到构建过程中的建议
Advice on integrating Closure Compiler to build process
我们希望在构建过程中使用 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
相关文章:
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- 在提交过程中使用同步确认灯箱提交表格
- 在电子商务结账过程中显示特定于上下文的错误
- Grunt排除在生成过程中插入某些文件
- JavaScript:如何在迭代过程中修改数组中的值
- 如何检查是否存在“;没有到主机的路由”;在流式传输视频的过程中一遍又一遍
- 返回它在Javascript中构建的新对象
- 在asp.net页面中显示javascript执行过程中的加载图标
- 在网格视图的自动刷新过程中,设置内部网格视图文本框的可见性
- ng-show内容在页面加载过程中闪烁,尽管它不是真实的,并且ng-cloak不适用于FF
- 如何在初始化过程中引用同一对象内的对象字段
- 如何将SignalR包含在gullow构建过程中
- 在构建过程中从节点/快速视图呈现静态 HTML 文件
- 如何防止 JavaScript 在构建过程中中断
- 在 JavaScript MVC 中的构建过程中找不到生产.css
- 关于将闭包编译器集成到构建过程中的建议
- 在构建应用程序Javascript MVC的过程中,score/buildjs抛出了一个没有解释的错误
- 如何使用wiredep将bread.bridge.angular添加到我的构建过程中
- 如何配置Grunt.js文件以在构建过程中复制没有特定子目录的目录
- 在构建过程中打印出Grunt.js配置