不久前,我在努力处理http://webjars.org/ 以及那里的部署策略,特别是我提到了构建过程非常耗时。
(链接:~alexmiller) 建议,构建可以在你的本地机器上完成。这有两个好处
- 更快
- 重新上传时没有许可问题(由于这个原因,webjars有时会有损坏的依赖关系树)
要解决的问题通常是,你想要一个如 jQuery 或 Bulma.io(CSS 框架)这样的版本化资产,但你不想将整个资产放入你的库中,因为这会使更新变得更困难。
但我认为我们不应该仅仅局限于构建文件,因为将 bulma 这样的东西包括进来作为编译流程的一部分仍然很有用。但有时你只想使用默认构建,这也很好。
WebJars 似乎可以在类路径上同时支持同一资产的不同版本,与此相关的有两个机制
- 路径可能是这样的:webjars/jquery/1.2.0/foo.js
- A WebJarLocator,它可以在类路径上找到这些,而不需要知道版本(我相信它在已知位置查找清单文件)。
我只是在考虑服务器端使用(因为这是我主要的用例),但我最近一直在使用包含 npm 依赖项的 clojurescript,我认为用相同的方式指定 clojurescript 依赖项将非常有用。
npm 是 tools.deps 支持的好目标
- 它从头到尾都是用 api 构建的。Yarn(Facebook 的替代 npm 客户端)已经非常流行,它建立在 api 之上
- 前端世界中的几乎所有事情都上传到那里。有一些旧的库,如 http://bower.io/,它们有时格式更方便,但 npm 已经得到了最广泛的采用