众所周知,npm(Node Package Manager)是nodejs时代不可或缺的最好的包管理器,如今已经随nodejs官方包同时会安装到你的设备上去。只要给项目书写好package.json放于项目根目录,在从新部署之时只须要执行 前端
npm install
一行简单的命令,全部相关的依赖就可以自动安装到项目目录下面,而且还能很方便的对不一样项目的不一样依赖包版本进行良好、统一的管理。node
关于NPM的具体使用已经不需更多赘述,能够自行参考这篇文章 http://www.infoq.com/cn/articles/msh-using-npm-manage-node.js-dependenceweb
重点来讲说NPM和Twitter推出的名为 Bower 的包管理器之间到底有什么样的关系和区别呢?(Bower的官网写到,Bower 是 "A package manager for the web" ,难道说NPM就不是了嘛)。npm
其实,在实际项目中,NPM和Bower都会被运用进去。而且Bower的安装和升级全都依赖于NPM,使用以下命令就能够全局安装Bowerjson
npm install -g bower
以后你就可使用后端
bower install [#]
相似于NPM的方式,对于当前项目进行前端依赖的相关管理。使用起来和NPM同样方便快捷。bash
其中,与NPM最大的区别在于,NPM主要运用于Node.js项目的内部依赖包管理,安装的模块位于项目根目录下的node_modules文件夹内。而Bower大部分状况下用于前端开发,对于CSS/JS/模板等内容进行依赖管理,依赖的下载目录结构能够自定义。工具
有人可能会问,为什么不用NPM一个工具对先后端进行统一的依赖管理呢? 实际上,由于npm设计之初就采用了的是嵌套的依赖关系树,这种方式显然对前端不友好;而Bower则采用扁平的依赖关系管理方式,使用上更符合前端开发的使用习惯。设计
不过,如今愈来愈多出名的js依赖包能够跨先后端共同使用,因此Bower和NPM上面有很多能够通用的内容。实际项目中,咱们能够采用NPM做用于后 端;Bower做用于前端的组合使用模式。让先后端公用开发语言的同时,不一样端的开发工程师可以更好地利用手上的工具提高开发效率。code