正如其他评论中提到的,除了Jam和Bower之外,在这个领域还有一些其他选择。
这两种工具都旨在为客户端打包资源并管理它们之间的依赖关系。 Jam和Bower似乎都是在2012年首次亮相--分别是在9月和5月。
两者都可以通过node/npm获得,如果你只想解决应用程序中公共库(如backbone、underscore、jquery等)之间的依赖关系,那么任何一个解决方案都可以工作,并允许你控制版本、放置位置以及检查更新等基本选项。
至于区别--Bower比Jam更低级,这使得它更适合更广泛的受众。你可以为不仅仅是JavaScript库创建bower组件。Jam更专注于AMD风格的JavaScript库。在Jam中,你可以在package.json文件中指定你的依赖项,就像你使用npm组件一样,而Bower则按照约定选择了component.json。 Bower的限制在于它只获取你的依赖项,如果你想使用Require.js或其他解决方案,仍然需要构建系统,而Jam已经默认集成了这些功能。Bower得到了Twitter和其他几个项目(Ender、Yeoman)的支持。
如果我说错了,那么Jam的另一个限制是它不允许你创建自己的组件以在私有存储库中分发。这是Bower允许你在.bowerrc中配置为终端节点的东西,但我还没有找到一种在Jam中实现这一点的方法。也许我没有搜索得够好,但至少有一个私有-jam的分支。
其他阅读材料:
npm
,在客户端使用bower
,尽管npm
可以用于两者。 - trysis