【问题标题】:NPM/Bower/Composer - differences?NPM/Bower/Composer - 区别?
【发布时间】:2014-05-20 01:20:45
【问题描述】:

谁能给我解释一下NPM、Bower和Composer之间的区别。

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

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

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

【问题讨论】:

标签: npm composer-php bower


【解决方案1】:

[更新,四年后]

  • bower 已弃用,不应再用于新项目。在很大程度上,它已被纳入节点依赖管理(来自他们的网站:“在维护 Bower 的同时,我们建议将 Yarn 和 Webpack 或 Parcel 用于前端项目”)。
  • yarn 作为一个更好的 npm 脱颖而出(修复了几个 npm 缺陷),这确实是你现在应该使用的,因为如果你在做前端,它是新的事实标准或节点开发。它确实使用与 npm 相同的 package.json,并且几乎完全兼容它。
  • 此时我不会使用composer(因为我不会使用php),尽管它似乎仍然存在并且很受欢迎

[原答案]

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

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

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

总结一下:

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

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

现在,自述文件呢? :-)

【讨论】:

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