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