“组件”是系统的一部分。Bower是一个软件包管理器。
哪一个更好?请阅读Bower FAQ了解区别。
Bower似乎更好地实现了它的目标,即成为Web的软件包管理器。
还有Jam、Volo、或Ender。当然,还有NPM。
要检查受欢迎程度和采用情况,请查看Ohloh。
更新:
Component软件包管理器https://github.com/component/component也是Web的软件包管理器。它使用GitHub作为模块的后端数据库,因此未在GitHub上的模块将不会列出。然而,这种方法使事情变得更容易,因为无需额外的凭据;作者只需使用GitHub。
个人认为Component应该采用独特的名称,以免与一般的“组件”混淆。
现在,Component团队已经写了他们自己的有见地的答案:https://github.com/component/guide/blob/master/component/vs.md#component-vs-bower
以下是今天的内容:
Bower与
npm
相比更加相似,而不是与Component相似。像npm
一样,Bower的bower.json
清单是包容性的,除了相关的.ignore
文件中的所有内容。另一方面,Component是排他性的,只下载在component.json
中指定的文件。然而,Bower和Component之间的主要区别在于,
component.json
更为严格和有见地:在component.json
中列出的所有文件都被认为是强制性的。另一方面,在bower.json
中列出的文件通常是可选的。严格的清单规范使Component能够轻松集成构建过程。但是,对于Bower来说这是不可能的,因为人们发布不同类型的模块(全局、插件、AMD和CommonJS),以及可选的文件,如此react-bower问题所示,使得集成构建过程非常困难。
Component的集成构建系统允许您在页面中只包含一个脚本和一个样式表。没有繁琐的
<script src="bower_components/jquery"><script>
等调用。与
npm
一样,bower
安装速度比Component慢,有一个不必要的发布步骤,不支持多个版本的依赖项,并且不缓存安装。