前一段时间我在用http://webjars.org/和其部署策略时发现头痛不已,特别是我提到构建过程非常耗时。
(链接:~alexmiller)提出的建议是在您的本地机器上执行构建。这有两个原因
- 更快
- 无需解决重新上传的许可问题(webjars有时会因为这个问题而有损坏的依赖树)
解决的问题通常是,您通常需要一个版本化的资产,如jQuery或Bulma.io(CSS 框架),但您不希望将这些整个资源库都放入您的库中,因为这会使其更新更困难。
但我认为我们不应该仅仅局限于构建文件,因为将如 Bulma 之类的资源作为编译管道的一部分引入仍然很有用。但有时您只需使用默认构建,这也很好。
WebJars 支持同时在类路径上安装同一资产的多个版本,与此相关的有两个机制
- 路径可能类似于 webjars/jquery/1.2.0/foo.js
- A WebJarLocator,可以在不知道版本的情况下查找这些资源(我相信它会查找已知位置处的清单文件)。
我只考虑服务器端使用(因为这是我主要用例),但最近我一直在使用 ClojureScript 和 npm 依赖项,我觉得以同样的方式指定 ClojureScript 的依赖项将非常有用。
npm 是 tools.deps 支持的好目标
- 它从头开始构建一个 API。Yarn(Facebook 的替代 npm 客户端)构建在此 API 之上,已经非常受欢迎
- 前端世界的几乎所有内容都上传到了那里。有像http://bower.io/这样的旧库,它们有时以更方便的格式出现,但 npm 的采用率最高