衆所周知,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