关于NPM / Bower / Composer:NPM / Bower / Composer – 差异?

NPM/Bower/Composer - differences?

有人能给我解释一下NPMBowerComposer之间的区别吗?

他们都是包经理-对吗?

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

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


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

bower是一个面向(前端)Web项目的包管理器。您需要NPM和Nodejs来安装和执行Bower,尽管Bower软件包不是专门针对Nodejs的,而是针对"浏览器"环境的。

composer是一个面向PHP项目的依赖关系管理器。如果您正在使用symfony(或普通的老PHP)进行操作,那么这很可能是一种方法。

总结:

  • 做节点?你做NPM
  • 做PHP?尝试作曲家
  • 前端javascript?试试凉亭

是的,"json"文件描述了基本的包信息和依赖性。是的,他们是需要的。

那么,自述文件呢?-)

  • 网址:https://github.com/bower/bower
  • 网址:https://www.npmjs.org/doc/cli/npm.html
  • https://getcomposer.org/doc/00-intro.md网站

[更新,四年后]

  • bower已被否决,不应再用于新项目。在很大程度上,它被纳入了节点依赖性管理(从他们的网站:"Bower维护时,我们建议在前端项目中使用yarn和webpack或package")。
  • yarn是作为更好的npm而出现的(修复了几个npm缺陷),这确实是您现在应该使用的,因为如果您正在进行前端或节点开发,这是新的事实标准。它确实消耗了与NPM相同的package.json,并且几乎完全兼容它。
  • 我现在不使用composer(因为我不使用php),尽管它看起来仍然很流行。


NPM–Nodejs的包经理。它是世界上最大的软件注册中心。来自各大洲的开源开发人员使用NPM来共享和借用软件包。包的结构允许您跟踪依赖项和版本。

Bower–前端Web项目包经理。Bower可以管理包含HTML、CSS、javascript、字体甚至图像文件的组件。Bower不连接或缩小代码,也不做任何其他事情——它只安装您需要的包及其依赖项的正确版本。它也是一个NPM包。所以可以通过NPM安装。

1
  npm install bower

composer–composer是一个在PHP中用于依赖项管理的工具。它不像yum或apt那样是一个包管理器。它处理包或库,但它以每个项目为基础管理它们,将它们安装在项目内的目录中。默认情况下,它不全局安装任何内容。因此,它是一个依赖关系管理器。

两个软件包管理者的故事:作曲家和NPM

Bower和NPM的区别

这里有一个应用程序可以帮助区分这些包管理器。它演示了应用程序如何同时利用几个包管理器。