为什么要使用Bower?[关闭]


32

我完全理解像Python pip,Node npm或Ruby Gems这样的包管理器的好处,因为它们所做的工作远远不止于将文件添加到应用程序路径中。

也许我错过了重点,或者我很钝,但这是我可以看到的负面影响

  • 建立项目时的单独步骤
  • 通过另一个软件包管理器单独安装依赖项(yo dawg)
  • 使用bower.json/和/或根目录的项目更加混乱.bowerrc
  • 依靠注册表是最新,正确且可用的
  • 某些导入/引用(如图片)的内容将无法正常工作
  • 与npm有很多重叠,并且通常不清楚何时使用哪个资源

我看到的积极因素是:

  • 我不必手动下载依赖项
  • 根据用户提示或类似情况,可选地将软件包安装为脚手架的一部分

我真的很想知道我没有意识到的任何好处,我应该说,我并不是想真正地想引起挑衅。



最终,您提到的所有程序包管理器都涉及下载依赖项,并且它们共享与Bower列出的某些相同的“负项”。同样,Bower共享了npm,pip和rubygems的一些优点:例如,Bower可以轻松将依赖项更新到最新版本(这是一个很大的版本),并且可以极大地减少git repo中的混乱情况,因为不需要签入相关代码。
sffc

6
可惜的是,这个问题因“主要基于意见”而被关闭。OP正在征求专家意见。“这如何帮助我进行开发?”
Dave Kanter

看起来趋势是您不应该使用bower,它与npm和Browserify结合使用时没有工具或优势。业界似乎已经发言,并且凉亭的模块数量在减少,npm和Browserify成为标准:quora.com/Why-use-Bower-when-there-is-npm
Brian Ogden

Answers:


12

自述文件

Bower是Web的程序包管理器。它为前端程序包管理问题提供了一种通用的,不受质疑的解决方案,同时通过API公开了程序包依赖关系模型,该API可以被更自以为是的构建堆栈使用。没有系统范围的依赖关系,没有依赖关系在不同应用之间共享,并且依赖关系树是平坦的。

Bower在Git上运行,并且与软件包无关。打包的组件可以由任何类型的资产组成,并且可以使用任何类型的传输方式(例如,AMD,CommonJS等)。

Bower具有其他依赖项管理器的许多优点。我确定还有其他好处,但是到目前为止,我注意到的好处包括:

  • 简化所谓的声明式依赖管理;也就是说,您在bower.json中声明依赖项,以便其他事情可以轻松确定它们
  • 无需将依赖项提交到版本控制
  • 语义版本控制用于帮助定义依赖项的可接受版本范围,从而可以轻松地将其更新为定义范围内的较新版本
  • 无需查找各种构建(调试,精简等)
  • 易于使用不同版本的开发与生产依赖
  • 您可以分发bower.json文件,每个人都可以通过简单的“ bower安装”来快速上手。

2
绝对希望我以一种不太挑衅的方式写这个问题。确实,我想我错过的关键好处是将API用作构建/脚手架过程的一部分。我想在野外的某个地方看到它的使用。
维尔

当我使用Yeoman的Angular生成器引导Angular webapp时,我意识到了Bower。尝试这样做可能会让您了解如何使用它。
2014年

在此之前,我使用过Yeoman和Grunt Init,也许只是我的需求一直意味着前端组件永远不会偏离-它们始终是Angular,jQuery,Mocha等。但是我可以看到,如果用户想要从引导提示选项列表中交换测试框架,这将很有用。我认为有意义的主要优点是引导程序选项和修饰符。您认为这公平吗?
2014年

2
还具有便携性。您可以分发bower.json文件,每个人都可以通过简单的“ bower安装”来加快速度。
Dave Kanter

1
s/bower/npm/i这个答案仍然是100%正确。
Qix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.