NPM/Bower/Composer - 差异?

pan*_*hro 93 npm composer-php bower

能向我解释的人之间的区别NPM,BowerComposer.

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

但什么时候应该使用每一个?

此外,每个人都有一个随附的json文件,这是否存储了您需要的所有软件包,以便可以通过cmd行安装它们?你为什么需要这个档案?

Man*_*utz 182

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

bower是一个针对(前端)Web项目的包管理器.您需要npm和nodejs来安装bower并执行它,虽然bower包不是专门针对nodejs,而是针对"浏览器"环境.

composer是一个针对php项目的依赖项管理器.如果你正在使用symfony(或普通的旧php),这可能是要走的路

总结一下:

  • 做节点?你这么做
  • 做php?尝试作曲家
  • 前端的JavaScript?尝试凉亭

是的,"json"文件描述了基本的包信息和依赖关系.是的,他们是必需的.

现在,自述文件怎么样?:-)

[更新,四年后]

  • bower已弃用,不应再用于新项目.在很大程度上,它已被纳入节点依赖管理(来自他们的网站:"在维护Bower的同时,我们建议使用Yarn和Webpack或Parcel进行前端项目").
  • yarn从木材中走出来更好npm(修复了几个npm缺陷),这就是你现在应该使用的,因为如果你正在进行前端或节点开发,这是新的事实上的标准.它确实消耗与package.jsonnpm 相同,并且几乎完全兼容它.
  • 我不会composer在这一点上使用(因为我不会使用php),虽然它似乎仍然活着并且很受欢迎

  • 我认为@ AngelS.Moreno是对的.有太多让我们成为第4名.:) (28认同)
  • 最讨厌和反作用的部分是当你在图书馆工作时,有些人只使用凉亭; 有些人只使用作曲家而其他人只使用npm.很高兴找到一个包管理器,只需一个命令就可以处理所有这些包管理器.它应该被称为Inception. (21认同)
  • 取决于你画线的地方.你的MVC是js(你的php被简化为WS)吗?然后可能使用凉亭.你的MVC是用php(例如,symfony),你有一堆js挂在你的服务器端视图?然后作曲家可能是你最好的选择. (14认同)
  • php + frontent应用程序怎么样?什么是最好的选择? (6认同)
  • @AngelS.Moreno,你是对的,我什至会比仅仅停留在安装程序和依赖管理器上更进一步。每样东西都太多了。太多的 JS 库做同样的事情,太多的 PHP 框架等等。如果人们能够在一件事情上合作,这将改变我们很多人的生活。 (2认同)