npm和bower的區(qū)別

標(biāo)簽(空格分隔): npm和bower的區(qū)別 前端包管理器


關(guān)鍵在于npm的依賴管理是奇特的倒向樹結(jié)構(gòu)(不同于linux越底層依賴越小)。一個(gè)普通的前端包的依賴樹非常冗長(zhǎng),甚至可能觸及windows下256字符的路徑長(zhǎng)度限制。同時(shí)和其它安裝包不能共享依賴代碼。導(dǎo)致文件非常多,不適合前端代碼部署。而bower讓模塊開發(fā)者定義了簡(jiǎn)潔的輸出文件。 npm3 會(huì)從根本上改善這一問題,所有依賴包會(huì)水平處理共享。隨著CommonJS普及,前后端今后統(tǒng)一使用npm是大勢(shì)所趨。

所以二者功能上是一樣的。

兩個(gè)都是包管理器bower偏重于前端一些。

不建議使用bower了。因?yàn)楣俜揭呀?jīng)停止維護(hù)了,他們建議直接使用npm就可以了。

眾所周知,npm(Node Package Manager)是nodejs時(shí)代不可或缺的最好的包管理器,現(xiàn)在已經(jīng)隨nodejs官方包同時(shí)會(huì)安裝到你的設(shè)備上去。只要給項(xiàng)目書寫好package.json放于項(xiàng)目根目錄,在重新部署之時(shí)只需要執(zhí)行 npm install一行簡(jiǎn)單的命令,所有相關(guān)的依賴就能夠自動(dòng)安裝到項(xiàng)目目錄下面,并且還能很方便的對(duì)不同項(xiàng)目的不同依賴包版本進(jìn)行良好、統(tǒng)一的管理。

Bower

NPM和Twitter推出的名為Bower 的包管理器之間到底有什么樣的關(guān)系和區(qū)別呢?(Bower的官網(wǎng)寫到,Bower 是 "A package manager for the web" ,難道說NPM就不是了嗎?)。

其實(shí),在實(shí)際項(xiàng)目中,NPM和Bower都會(huì)被運(yùn)用進(jìn)去。并且Bower的安裝和升級(jí)全都依賴于NPM,使用如下命令就可以全局安裝Bower

npm install -g bower

之后你就可以使用

bower install [#]

類似于NPM的方式,對(duì)于當(dāng)前項(xiàng)目進(jìn)行前端依賴的相關(guān)管理。使用起來和NPM一樣方便快捷。

有人可能會(huì)問,為何不用NPM一個(gè)工具對(duì)前后端進(jìn)行統(tǒng)一的依賴管理呢? 實(shí)際上,因?yàn)閚pm設(shè)計(jì)之初就采用了的是嵌套的依賴關(guān)系樹,這種方式顯然對(duì)前端不友好;而Bower則采用扁平的依賴關(guān)系管理方式,使用上更符合前端開發(fā)的使用習(xí)慣。

不過,現(xiàn)在越來越多出名的js依賴包可以跨前后端共同使用,所以Bower和NPM上面有不少可以通用的內(nèi)容。實(shí)際項(xiàng)目中,我們可以采用NPM作用于后端;Bower作用于前端的組合使用模式。讓前后端公用開發(fā)語言的同時(shí),不同端的開發(fā)工程師能夠更好地利用手上的工具提升開發(fā)效率。

小結(jié)、

其中,與NPM最大的區(qū)別在于,NPM主要運(yùn)用于Node.js項(xiàng)目的內(nèi)部依賴包管理,安裝的模塊位于項(xiàng)目根目錄下的node_modules文件夾內(nèi)。而Bower大部分情況下用于前端開發(fā),對(duì)于CSS/JS/模板等內(nèi)容進(jìn)行依賴管理,依賴的下載目錄結(jié)構(gòu)可以自定義。

ps:部分截取網(wǎng)絡(luò)資源的整理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,296評(píng)論 25 708
  • 眾所周知,npm(Node Package Manager)是nodejs時(shí)代不可或缺的最好的包管理器,現(xiàn)在已經(jīng)隨...
    iplaycodex閱讀 474評(píng)論 0 0
  • 遇到流浪動(dòng)物救助組織發(fā)起的捐助活動(dòng)或義賣時(shí),我一般都會(huì)去捐點(diǎn)銀子或買些物品。數(shù)目不多,屬量力為之。 這種性質(zhì)的花錢...
    淺草小仙閱讀 214評(píng)論 0 0
  • 師北辰作業(yè)01 寫作對(duì)于我意味著什么呢? 今天聆聽了師北辰寫作的第一課,一個(gè)小時(shí)左右的時(shí)間,師北辰講述了他從接觸寫...
    靜遠(yuǎn)庭閱讀 366評(píng)論 0 3
  • 自我控制是一個(gè)人對(duì)自己心理與行為的主動(dòng)掌握,在我們身邊有很多自控能力不太好的人,包括我自己的自我控制能力也不...
    邊迪迪閱讀 269評(píng)論 0 0