我正在开发一个要部署在heroku上的clojure应用程序,我希望我的javascript依赖项管理(使用哪个版本的jquery..)和我的资产编译任务(concat css和minify,将资产上传到s3,......)自动化。
在 heroku 上开发 node.js 应用程序时,使用bower和gruntjs非常容易。
不幸的是 node.js 和 npm 没有与 clojure buildpack 一起安装。
我知道我可以修改构建包以包含任意工具。但我真的不想为了向我的应用程序添加简单的依赖管理而分叉一个 buildpack。当任何使用的工具的新版本发布时,我不想有义务更新我的分叉的开销。
在不将它们放入 git repo 的情况下,您推荐的更新依赖项的方法是什么?如何编译静态资产?
我想到的解决方案
- 使用带有资产管道的rails(而不是clojure);)(只是开玩笑,这不是解决方案)
- 使用带有 bower 和 grunt 的节点(而不是 clojure)(可以在 package.json 中定义为依赖项)
- 将依赖项放入 git repo 并手动编译和缩小资产(容易出错,我想自动执行此操作,并且不想无缘无故地在 repo 中保留大的依赖项)
- 编写自定义 shell 脚本或 makefile 来下载依赖项,并使用 ruby 和 gem 来下载和使用 css minify(应该可以工作,但可能会损坏,像 bower 和 grunt 这样的工具正是为这个任务而设计的,应该比滚动你的自己的脚本)
- 找到一个 clojure 的网络依赖管理器(我还没有找到)
- 为 java 找到一个 web 依赖管理器(类似于wro4j
- 为独立于 buildpack 的 grunt 和 bower 创建或使用现有的一键式安装
你们要重新开始什么?几乎每个网络应用程序似乎都有解决这个问题的最稳定和最方便的方法是什么。