ChatGPT解决这个技术问题 Extra ChatGPT

NPM/Bower/Composer - 区别?

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

他们都是包管理器——对吗?

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

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

还要在列表中添加 Yarn (yarnpkg.com)、NuGet (nuget.org) 和 Chocolatey (chocolatey.org),另请阅读:en.wikipedia.org/wiki/…

S
Sebastian

[更新,四年后]

bower 已弃用,不应再用于新项目。在很大程度上,它已被纳入节点依赖管理(来自他们的网站:“在维护 Bower 的同时,我们建议将 Yarn 和 Webpack 或 Parcel 用于前端项目”)。

yarn 作为一个更好的 npm 脱颖而出(修复了几个 npm 缺陷),这确实是您现在应该使用的,因为如果您正在进行前端或节点开发,它是新的事实标准。它确实使用与 npm 相同的 package.json,并且几乎完全兼容。

在这一点上我不会使用 composer(因为我不会使用 php),尽管它似乎仍然存在并且很受欢迎

[原答案]

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

bower 是针对(前端)网络项目的包管理器。您需要 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


php+frontent 应用程序呢?最好的选择是什么?
取决于你在哪里画线。你的 MVC 在 js 中(并且你的 php 被简化为 WS)吗?然后可能使用凉亭。您的 MVC 是否在 php 中(例如 symfony),并且您有一堆 js 挂接到您的服务器端视图中?那么作曲家可能是你最好的选择。
最烦人和适得其反的部分是当你在图书馆工作时,有些人只使用凉亭;有些只使用作曲家,而另一些只使用 npm。很高兴找到一个包管理器,用一个命令处理所有这些包管理器。它应该被称为Inception。
我认为@AngelS.Moreno 是对的。太多了,让我们做第四个。 :)
@AngelS.Moreno 你是对的,我什至会走得更远,而不仅仅是停留在安装程序和依赖管理器上。有太多的东西。太多的 JS 库做同样的事情,太多的 PHP 框架等等。如果人们可以在一件事上合作,它将改变我们很多人的生活。