npm 和bower之间的区别

Posted 小闹心lu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了npm 和bower之间的区别相关的知识,希望对你有一定的参考价值。

 (一)

npm是node js的包管理器,用来下载安装node js的第三方工具包,也可以用来发布你自己开发的工具包。通过npm可以安装bower,命令如下: npm install -g bower

bower是一个前端库管理的工具,管理一些js库,比如说jQuery,bootstrap等。通过bower,你就不用自己去找jQuery文件了,通过配置文件就可以自动完成了。

 (二)

关键在于npm的依赖管理是奇特的倒向树结构(不同于linux越底层依赖越小)。一个普通的前端包的依赖树非常冗长,甚至可能触及windows下256字符的路径长度限制。同时和其它安装包不能共享依赖代码。导致文件非常多,不适合前端代码部署。

而bower让模块开发者定义了简洁的输出文件。

 (三)

npm最常用于管理Node.js模块,但它与Browserify和/或组合时也适用于前端$ npm dedupe

Bower是专门为前端创建的,并在此基础上进行了优化。

最大的区别在于npm是嵌套依赖关系树(大小很重),而Bower需要一个平坦的依赖关系树(将依赖关系解析的负担放在用户身上)

许多项目使用的原因是他们使用Bower作为前端软件包,npm用于诸如Yeoman,Grunt,Gulp,JSHint,CoffeeScript等开发人员工具。

 

以上是关于npm 和bower之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Grunt,NPM和Bower之间的区别(package.json vs bower.json)

NPM/Bower/Composer - 区别?

关于使用bower下载文件,出现问题解决方法?

bower程序包管理器与npm的对比及handlebars包的使用实例

npm bower gulp

bower init - amd、es6、globals 和 node 之间的区别