NPM/鲍尔/作曲家-差异?

NPM/鲍尔/作曲家-差异?,npm,composer-php,bower,Npm,Composer Php,Bower,有人能给我解释一下NPM、Bower和Composer之间的区别吗 他们都是包管理员-对吗 但是什么时候应该使用每一个呢 此外,每一个都有一个json文件,它是否存储了您需要的所有软件包,以便可以通过cmd行安装?为什么需要此文件?npm是nodejs包管理器。因此,它以nodejs环境为目标,这通常意味着服务器端nodejs项目或命令行项目(bower本身就是一个npm包)。如果您打算使用nodejs做任何事情,那么您将使用npm bower是一个针对(前端)web项目的包管理器。您需要npm

有人能给我解释一下
NPM
Bower
Composer
之间的区别吗

他们都是包管理员-对吗

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


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

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的同时,我们建议在前端项目中使用Thread和Webpack或Parcel”)
  • 纱线
    作为一种更好的
    npm
    (修复了一些
    npm
    缺陷)应运而生,这确实是您现在应该使用的,因为如果您正在进行前端或节点开发,这是一种新的事实标准。它确实使用了与npm相同的
    package.json
    ,并且几乎与npm完全兼容
  • 此时我不会使用
    composer
    (因为我不会使用
    php
    ),尽管它似乎仍然很流行

php+frontent应用程序怎么样?最好的选择是什么?取决于你的底线。你的MVC是js格式的吗(你的php是WS格式的)?然后可能使用鲍尔。您的MVC是用php编写的吗(比如说,symfony),并且您的服务器端视图中连接了一堆js?最烦人和适得其反的部分是当你在图书馆工作时,有些图书馆只使用bower;一些仅使用composer,而另一些仅使用npm。如果能找到一个使用单个命令处理所有这些包管理器的包管理器就好了。应该叫《盗梦空间》。我认为@AngelS.Moreno是对的。太多了,让我们做第四次吧。:)@你是对的,我甚至不只是停留在安装程序和依赖管理器上。一切都太多了。太多的JS库做同样的事情,太多的PHP框架等等。如果人们能在一件事上合作,这将改变我们很多人的生活。另外,在列表中添加纱线()、纽吉()和巧克力(),也请阅读: