有人可以向我解释NPM
,Bower
和Composer
之间的区别。
他们都是包经理 - 对吗?
但是应该何时使用每一个?
此外,每个人都有一个随附的json文件,这是否存储了您需要的所有软件包,以便可以通过cmd行安装它们?你为什么需要这个文件?
答案 0 :(得分:180)
npm
是nodejs包管理器。因此它针对nodejs环境,这通常意味着服务器端nodejs项目或命令行项目(bower本身是一个npm包)。如果你要对nodejs做任何事情,那么你将使用npm。
bower
是一个针对(前端)Web项目的包管理器。你需要npm和nodejs来安装bower并执行它,虽然bower包不是专门用于nodejs,而是用于"浏览器"环境。
composer
是一个针对php项目的依赖项管理器。如果你正在使用symfony(或普通的旧php),这可能是要走的路
总结:
是的," json" files描述基本包信息和依赖关系。是的,他们是必需的。
现在,自述文件怎么样? : - )
[更新,四年后]
bower
已弃用,不应再用于新项目。在很大程度上,它已被纳入节点依赖管理(来自他们的网站:"在维护Bower的同时,我们建议使用Yarn和Webpack或Parcel作为前端项目")。yarn
从木头出来是更好npm
(修复了几个npm
瑕疵),这就是你现在应该使用的,因为它是新的de-事实上标准,如果您正在进行前端或节点开发。它确实使用与npm相同的package.json
,并且几乎完全兼容它。composer
(因为我不会使用php
),虽然它似乎仍然活着且很受欢迎答案 1 :(得分:2)
NPM - nodejs的包管理器。它是世界上最大的软件注册机构。来自各大洲的开源开发人员使用npm来共享和借用包。包的结构使您能够跟踪依赖关系和版本。
Bower - 前端Web项目的包管理器。 Bower可以管理包含HTML,CSS,JavaScript,字体甚至图像文件的组件。 Bower不会连接或缩小代码或执行任何其他操作 - 它只是安装所需软件包的正确版本及其依赖项。它也是一个npm包。所以它可以通过npm安装。
npm install bower
Composer - Composer是PHP中依赖项管理的工具。它不是与Yum或Apt相同意义上的包管理器。它处理包或库,但它基于每个项目管理它们,并将它们安装在项目内的目录中。默认情况下,它不会全局安装任何内容。因此,它是一个依赖管理器。
A Tale of Two Package Managers: Composer and NPM
Difference between Bower and NPM
以下an app有助于区分这些包管理器。它演示了应用程序如何同时利用多个包管理器。