NPM / Bower / Composer-差异?


102

能向我解释的人之间的区别NPMBowerComposer

他们都是包裹经理-对吗?

但是何时应该使用每个?

另外,每个文件似乎都带有一个json文件,这是否存储了您需要的所有软件包,以便可以通过cmd行安装它们?为什么需要此文件?

Answers:


192

npm是nodejs包管理器。因此,它针对的是nodejs环境,这通常意味着服务器端的nodejs项目或命令行项目(bower本身是npm软件包)。如果您要对nodejs做任何事情,那么您将使用npm。

bower是一个针对(前端)Web项目的程序包管理器。您需要npm和nodejs来安装bower并执行它,尽管bower软件包并非专门用于nodejs,而是用于“浏览器”环境。

composer是针对php项目的依赖项管理器。如果您正在使用symfony(或普通的旧php)做某事,这可能是可行的方法

总结一下:

  • 在做节点?你做npm
  • 做PHP?尝试作曲家
  • 前端JavaScript?尝试凉亭

是的,“ json”文件描述了基本的软件包信息和依赖性。是的,它们是必需的。

现在,自述文件如何?:-)

[更新,四年后]

  • bower已弃用,不应再用于新项目。在很大程度上,它已包含在节点依赖管理中(从他们的网站:“在维护Bower的同时,我们建议对前端项目使用Yarn和Webpack或Parcel”)。
  • yarn更好地npm解决了npm这个问题(修复了多个缺陷),这确实是您现在应该使用的,因为如果您要进行前端或节点开发,它就是事实上的新标准。它的消耗与package.jsonnpm 相同,并且几乎完全兼容。
  • 我目前不会使用composer(因为我不会使用php),尽管它似乎仍然很流行并且很流行

6
php + frontent应用程序呢?最好的选择是什么?
sompylasar 2014年

14
取决于您画线的位置。您的MVC是js吗(您的php简化为WS)?然后可能会使用凉亭。您的MVC是否在php中(例如symfony),并且您有一堆js插入了服务器侧视图?然后,作曲家可能是您的最佳选择。
Mangled Deutz 2014年

21
最烦人和适得其反的部分是在图书馆上工作时,有些图书馆只使用凉亭。一些仅使用作曲家,而另一些仅使用npm。最好找到一个使用单个命令即可处理所有这些软件包管理器的软件包管理器。它应该叫做盗梦空间。
Angel S. Moreno 2014年

29
我认为@ AngelS.Moreno是正确的。第四名让太多了。:)
Eric

1
@ AngelS.Moreno你是对的,我什至不仅仅只是停止安装程序和依赖项管理器而已。太多了。太多执行相同操作的JS库,太多PHP框架等等。如果人们可以在一件事上进行协作,那么这将改变我们许多人的生活。
JG Estiot 2015年
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.