npm 与 bower 的区别

926 阅读1分钟

文章背景

在2015年9月以前端工程师的身份入职第一家公司时,公司使用的前端技术栈是Backbone+Grunt+Bower。而在半年之后,react、vue、angular三巨头在前端领域三足鼎立,公司架构组结合公司现技术情况,决定采用react+redux+immutable+webpack+babel的技术栈搭建新一点前端框架。 因为之前使用Backbone时,采用的是bower,并未接触npm,所以还对npm有点陌生,毕竟当时自己是一名实实在在的前端小白,当搭建新的前端框架时,采用的是npm。两者都是包管理器,但是两者有什么区别呢?

区别

  1. npm 是进行 NodeJS开发中,使用的模块安装工具,npm是伴随着NodeJS 出现的一个包管理器,最开始只支持NodeJS的模块管理,但是到后来,NPM经过一次改版,打出的口号是,javascript的包管理器,其已经不在局限于NodeJS的模块管理了,前后端通吃了。
  2. bower 是前端的模块安装工具,从一开始就是专门为前端表现设计的包管理器,一切全部为前端考虑。
  3. npm 与 bower 最大的区别就是: npm支持嵌套地依赖管理,而 bower只能支持扁平的依赖(嵌套的依赖,由程序员自己解决)