原文http://sexywp.com/what-the-difference-of-bower-and-npm.htm
本文主要講一下同是包管理器的bower和npm的差別。
npm 是伴隨Node.js 出現的一個包管理器,最開始只能支持 Node.js 的模塊管理,但是后來, npm 官網經過一次改版,打出的口號是,javascript 的包管理器,所以,其已經不在局限于是Node.js 的模塊管理了,已經通用到了所有 js 的包管理工具了,可以說,前后通吃了。
bower 的話,從一開始,就是專門為前端表現設計的包管理器,一切全部為前端考慮的。
npm 和bower 的最大區別,就是 npm 支持嵌套地依賴管理,而 bower只能支持扁平的依賴(嵌套的依賴,由程序員自己解決)。嵌套依賴,指的就是,你依賴的軟件包,還有它自己的依賴,好像摘葡萄,一摘一大串。在服務器環境的時候,這并沒什么關系,因為存儲空間夠大,一切代碼都是本地運行,只要解決完依賴就行了,
但是到了用戶的瀏覽器里,就很成問題了,你不能讓用戶去下載好幾M的js代碼,那就太糟糕了。在這個情況下,就需要程序員自己手動解決用到的類庫的嵌套依賴問題。比如確保各種各樣的插件都依賴同一個版本的jQuery。
為什么有很多項目 bower 和 npm 都用呢,那是因為要用 bower 管理前端的包,而用 npm 去管理一些后端的包和構建工具,例如,yeoman,grunt,gulp,jshint 等等等等。
所有的包管理器,都有自己的弊端,要視需要選用對自己的項目最合適的
安裝指定的版本號:
npm install 包名@1.0.1
bower install 包名#1.0.1