组件和Bower有什么区别?

26

我曾经费劲心思地寻找有关 componentbower 之间区别的概述。哪一个更好,使用哪一个更好的软件包管理器?是否有其他替代品值得考虑?


我在这里找到了答案:http://dailyjs.com/2013/01/28/components/。讨论可以在这里找到:https://groups.google.com/forum/#!msg/componentjs/FGM46qQX9hs/zOryL24q1AcJ。 - Yoshua Wuyts
2个回答

10

“组件”是系统的一部分。Bower是一个软件包管理器。

哪一个更好?请阅读Bower FAQ了解区别。

Bower似乎更好地实现了它的目标,即成为Web的软件包管理器。

还有Jam、Volo、或Ender。当然,还有NPM。

要检查受欢迎程度和采用情况,请查看Ohloh

更新:

Component软件包管理器https://github.com/component/component也是Web的软件包管理器。它使用GitHub作为模块的后端数据库,因此未在GitHub上的模块将不会列出。然而,这种方法使事情变得更容易,因为无需额外的凭据;作者只需使用GitHub。

个人认为Component应该采用独特的名称,以免与一般的“组件”混淆。


13
“组件是系统的一部分。” 根据这个说法,我认为Joe没有理解问题。Yoshua提到https://github.com/component/component,这是Bower的竞争对手。 - Eric Drechsel
6
半年来这个问题一直被理解为同样的意思(6票赞成)。组件包管理器的名称有歧义。 - Paul Verest

4

现在,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慢,有一个不必要的发布步骤,不支持多个版本的依赖项,并且不缓存安装。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接