bower 和 npm 的區別詳細介紹

摘要: 本文講的是bower 和 npm 的區別詳細介紹, 簡單的說,npm是進行後端開發中,使用的模塊安裝工具,而bower,是前端的模塊安裝工具。 比如,在安裝express,socket.io時,當然使用的是npm,那麼比如bootstrap,jquery等前端框架,需要使用bowe

 

簡單的說,npm是進行後端開發中,使用的模塊安裝工具,而bower,是前端的模塊安裝工具。
比如,在安裝express,socket.io時,當然使用的是npm,那麼比如bootstrap,jquery等前端框架,需要使用bower

前端技術和工程實踐真的是突飛猛進啊,想當年,我這個半業餘前端吭哧吭哧做頁面的時候,哪有這麼多東西可以用啊,現在先進到我都完全看不懂了。本文主要講一下同是包管理器的bower和npm的差別。
主要也是在stackoverflow看來的,翻譯加一部分自己的理解。

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和Twitter推出的名爲 Bower 的包管理器之間到底有什麼樣的關係和區別呢?(Bower的官網寫到,Bower 是 "A package manager for the web" ,難道說NPM就不是了嘛)。

其實,在實際項目中,NPM和Bower都會被運用進去。並且Bower的安裝和升級全都依賴於NPM,使用如下命令就可以全局安裝Bower

npm install -g bower
之後你就可以使用

bower install [#]
類似於NPM的方式,對於當前項目進行前端依賴的相關管理。使用起來和NPM一樣方便快捷。

其中,與NPM最大的區別在於,NPM主要運用於Node.js項目的內部依賴包管理,安裝的模塊位於項目根目錄下的node_modules文件夾內。而Bower大部分情況下用於前端開發,對於CSS/JS/模板等內容進行依賴管理,依賴的下載目錄結構可以自定義。

以上是雲棲社區小編爲您精心準備的的內容,在雲棲社區的博客、問答、公衆號、人物、課程等欄目也有的相關內容,歡迎繼續使用右上角搜索按鈕進行搜索前端 , 程序員 , 模塊 , 代碼 , 前端開發 用戶 bower npm 區別、npm和bower的區別、bower和npm有什麼區別、bower和npm區別、npm bower,以便於您獲取更多的相關知識。

(原文地址:https://yq.aliyun.com/ziliao/40449)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章