NPM/Bower/Composer - 区别?
Posted
技术标签:
【中文标题】NPM/Bower/Composer - 区别?【英文标题】:NPM/Bower/Composer - differences? 【发布时间】:2014-05-20 01:20:45 【问题描述】:谁能给我解释一下NPM
、Bower
和Composer
之间的区别。
他们都是包管理器 - 对吗?
但是什么时候应该使用每一个呢?
另外,每个似乎都有一个随附的 json 文件,这是否存储了您需要的所有包,以便可以通过 cmd 行安装它们?为什么需要这个文件?
【问题讨论】:
还在列表中添加 Yarn (yarnpkg.com)、NuGet (nuget.org) 和 Chocolatey (chocolatey.org),另请阅读:en.wikipedia.org/wiki/… 【参考方案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”文件描述了基本的包信息和依赖关系。是的,它们是必需的。
现在,自述文件呢? :-)
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 框架等等。如果人们可以在一件事情上合作,它将改变我们很多人的生活。以上是关于NPM/Bower/Composer - 区别?的主要内容,如果未能解决你的问题,请参考以下文章