为什么Yeoman使用Bower而不是仅使用npm?

时间:2014-07-11 12:35:47

标签: node.js npm yeoman bower

我开始使用这些工具,并且仍然在理解它们的元依赖性。

正如我看到Yeoman,它是npm的客户端,有一些"向导"能力。它已经安装了所用生成器的依赖项。 Bower使用和需要的原因,地点和方式如何?为什么Yeoman在使用npm时需要另一个包系统?

我知道通常npm用于服务器端代码,Bower用于客户端代码(但仍然在服务器上,browserify用于客户端)。

npm和Bower都是包管理系统。对? 那么为什么Yeoman使用两个不同的包管理系统而不是坚持一个?


示例:我想为我的团队创建一组模板和组件,以便能够根据常见的结构,样式等快速构建网站。

  • 首先,我创建一个带有基本css菜单的小空网站。我做了一个Yeoman发电机。
  • 然后我制作了第二个生成器,为这个网站添加一个空页面。 (我想要一个这种情况的生成器,所以它在菜单中创建条目,添加一些测试等)。
  • 然后我想提供一些自定义组件,比如特殊表单。我通常会将其打包成凉亭包装。 但为什么不作为另一个发电机?

在这种情况下,发电机完全符合要求。这将是一个非常愚蠢的生成器,基本上只是导入正确的文件夹中的文件。它不会改变开发人员的流程。

2 个答案:

答案 0 :(得分:1)

这只是一个自以为是的决定,引用Yeoman's

  

通过我们的官方发电机,我们推广" Yeoman工作流程" 。这个工作流程一个健壮且富有洞察力的客户端堆栈,包含工具和框架,可以帮助开发人员快速构建漂亮的Web应用程序。

Bower仅适用于front end components management

  

它为前端程序包管理问题提供了一种通用的,不受任意影响的解决方案,同时通过可以由更具意见的构建堆栈使用的API公开包依赖关系模型。没有系统范围的依赖关系,不同应用程序之间不共享依赖关系,依赖关系树是平的

修改 引用@ jlafay的评论:

  

...由于url的最大长度,它的依赖结构保持更平坦,更适合网页。 npm依赖项可以具有子依赖项,并且它们倾向于将这些子依赖项嵌套在它们各自的父目录中。

答案 1 :(得分:0)

Yeoman 使用Bower,因为它是网络的包管理器,可让您轻松管理项目的依赖关系。

Yeoman需要Bower的依赖项,例如JavaScript,图像或CSS,它们不包含在npm中(为节点,服务器端应用程序安装包)