NPM/Bower/Composer-差异?

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

They are all package managers - correct?

但是什么时候使用呢?

另外,每一个似乎有一个 json 文件,伴随它,这是否存储所有的包,你需要,所以他们可以通过 cmd 行安装?你为什么需要这份文件?

45167 次浏览

[ 更新,四年后]

  • bower已被废弃,不应再用于新项目。在很大程度上,它已经被纳入节点依赖管理(来自他们的网站: “当 Bower 得到维护时,我们建议在前端项目中使用 Yarn 和 Webpack 或 Parcel”)。
  • yarn came out of the wood as a better npm (fixing several of npm flaws), and this is really what you should use now, as it is the new de-facto standard if you are doing front-end or node development. It does consume the same package.json as npm, and is almost entirely compatible with it.
  • 我不会在这一点上使用 composer(因为我不会使用 php) ,虽然它似乎仍然活跃和流行

[ 原始答案]

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

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

composer是一个针对 php 项目的依赖管理器。如果您正在使用 symfony (或者普通的 php)做一些事情,那么可能就是这样做的

总结一下:

  • 做节点? 你做 npm
  • 试试作曲
  • 前端 javascript? 试试 Bower

是的,“ json”文件描述了基本的包信息和依赖关系。

那么,自述文件呢? : -)