NPM / Bower / Composer - 差异?

时间:2014-04-07 16:53:34

标签: npm composer-php bower

有人可以向我解释NPMBowerComposer之间的区别。

他们都是包经理 - 对吗?

但是应该何时使用每一个?

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

2 个答案:

答案 0 :(得分:180)

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

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

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

总结:

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

是的," json" files描述基本包信息和依赖关系。是的,他们是必需的。

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

[更新,四年后]

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

答案 1 :(得分:2)

NPM - nodejs的包管理器。它是世界上最大的软件注册机构。来自各大洲的开源开发人员使用npm来共享和借用包。包的结构使您能够跟踪依赖关系和版本。

Bower - 前端Web项目的包管理器。 Bower可以管理包含HTML,CSS,JavaScript,字体甚至图像文件的组件。 Bower不会连接或缩小代码或执行任何其他操作 - 它只是安装所需软件包的正确版本及其依赖项。它也是一个npm包。所以它可以通过npm安装。

  npm install bower

Composer - Composer是PHP中依赖项管理的工具。它不是与Yum或Apt相同意义上的包管理器。它处理包或库,但它基于每个项目管理它们,并将它们安装在项目内的目录中。默认情况下,它不会全局安装任何内容。因此,它是一个依赖管理器。

A Tale of Two Package Managers: Composer and NPM

Difference between Bower and NPM

以下an app有助于区分这些包管理器。它演示了应用程序如何同时利用多个包管理器。