NPM/Bower/Composer - differences?
有人能给我解释一下NPM、Bower和Composer之间的区别吗?
他们都是包经理-对吗?
但是每一个都应该在什么时候使用呢?
另外,每个包似乎都有一个附带的JSON文件,这是否存储了您需要的所有包,以便可以通过命令行安装它们?你为什么需要这个文件?
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网站
[更新,四年后]
- bower已被否决,不应再用于新项目。在很大程度上,它被纳入了节点依赖性管理(从他们的网站:"Bower维护时,我们建议在前端项目中使用yarn和webpack或package")。
- yarn是作为更好的npm而出现的(修复了几个npm缺陷),这确实是您现在应该使用的,因为如果您正在进行前端或节点开发,这是新的事实标准。它确实消耗了与NPM相同的package.json,并且几乎完全兼容它。
- 我现在不使用composer(因为我不使用php),尽管它看起来仍然很流行。
- PHP+前台应用程序怎么样?最好的选择是什么?
- 取决于你在哪里画线。您的MVC是在JS中吗(并且您的PHP被简化为一个WS)?然后可能用凉亭。您的MVC是在PHP中吗(比如symfony),您的服务器端视图中连接了大量的JS?那么作曲家可能是你最好的选择。
- @MangledDeutz,那么您可以使用Composer来管理JavaScript库吗?
- 对。packagist.org/search/?Q= jQuery
- 最令人恼火和适得其反的是,当你在图书馆工作时,有些图书馆只使用鲍尔;有些图书馆只使用作曲家,而另一些图书馆只使用NPM。如果能找到一个能用一个命令处理所有这些包管理器的包管理器,那就太好了。它应该被称为初始阶段。
- 在谷歌上找到了github.com/francoispluchino/composer-asset-plugin吗?
- 我想@angels.moreno是对的。有太多了,让我们排第四。:)
- @埃里克有我的选票!
- 他-xkcd.com/927
- @Moreno你说得对,我甚至会更进一步,而不仅仅是在安装人员和依赖关系管理人员那里停留。一切都太多了。执行相同操作的JS库太多,PHP框架太多等等。如果人们能在一件事情上合作,这会改变我们很多人的生活。
- @MangledDeutz Composer不是包管理器。它是依赖关系管理器。这就是我在定义中发现的。您能简要说明依赖关系管理器和包管理器之间的区别吗
- @Ganeshbabu.t.y:没有区别,imho,作曲家当然是一个软件包经理(他们提出的解释是非常荒谬的)。但是,如果您仍然想坚持这一区别,那么NPM将既是一个包,又是一个依赖关系管理器,鲍尔将是一个依赖关系管理器。
- @Ganeshbabu由于您的开发依赖很多包,所以Composer作为这些依赖项的包管理器工作。
- @angels.moreno explainxkcd.com/wiki/index.php/1654:_universal_install_scrip‌&8203;t
- 这已经过时了。现在你可以用NPM代替鲍尔,很多人建议你这样做。NPM不仅限于Nodejs环境。
- 同意。我今天就用纱线:)
NPM–Nodejs的包经理。它是世界上最大的软件注册中心。来自各大洲的开源开发人员使用NPM来共享和借用软件包。包的结构允许您跟踪依赖项和版本。
Bower–前端Web项目包经理。Bower可以管理包含HTML、CSS、javascript、字体甚至图像文件的组件。Bower不连接或缩小代码,也不做任何其他事情——它只安装您需要的包及其依赖项的正确版本。它也是一个NPM包。所以可以通过NPM安装。
composer–composer是一个在PHP中用于依赖项管理的工具。它不像yum或apt那样是一个包管理器。它处理包或库,但它以每个项目为基础管理它们,将它们安装在项目内的目录中。默认情况下,它不全局安装任何内容。因此,它是一个依赖关系管理器。
两个软件包管理者的故事:作曲家和NPM
Bower和NPM的区别
这里有一个应用程序可以帮助区分这些包管理器。它演示了应用程序如何同时利用几个包管理器。