標(biāo)簽(空格分隔): 包管理 bower
序
開發(fā)過程中延柠,為了提升開發(fā)速度,不能什么功能都從底層的js代碼寫起吧费彼,各種兼容削咆,細(xì)節(jié)還是繁瑣的,所以必然要基于某個(gè)框架杖剪、庫去架構(gòu)你的站點(diǎn)冻押。這就涉及到引入人家的代碼庫,比如:常見的jQuery盛嘿、Underscore洛巢、bootstrap等。而且有些庫呢也不是基于原生js寫的次兆,底層還是依賴于某些庫稿茉,那你自己書寫代碼時(shí)就要注意了,依賴的順序芥炭,依賴的版本等漓库。傳統(tǒng)開發(fā),這些都是自己到相應(yīng)的官網(wǎng)下載蚤认,放到自己的項(xiàng)目目錄里米苹。但是,大前端時(shí)代來了砰琢,站點(diǎn)功能復(fù)雜度,以及從項(xiàng)目的長(zhǎng)久維護(hù)生命周期等角度都應(yīng)該對(duì)依賴的庫也就是包良瞧,做一個(gè)自動(dòng)化的處理陪汽,有這樣的一個(gè)工作幫我們處理包的各項(xiàng)管理工作。我不管誰依賴誰褥蚯、哪個(gè)版本依賴哪個(gè)版本挚冤。只是需要安心coding就可以。要誰就下載誰赞庶,使用時(shí)require進(jìn)來就ok训挡。
bower介紹
Bower 是 twitter 推出的一款包管理工具,基于nodejs的模塊化思想歧强,把功能分散到各個(gè)模塊中澜薄,讓模塊和模塊之間存在聯(lián)系,通過 Bower 來管理模塊間的這種聯(lián)系摊册。
包管理工具一般有以下的功能:
- 注冊(cè)機(jī)制:每個(gè)包需要確定一個(gè)唯一的 ID 使得搜索和下載的時(shí)候能夠正確匹配肤京,所以包管理工具需要維護(hù)注冊(cè)信息,可以依賴其他平臺(tái)茅特。
- 文件存儲(chǔ):確定文件存放的位置忘分,下載的時(shí)候可以找到棋枕,當(dāng)然這個(gè)地址在網(wǎng)絡(luò)上是可訪問的。
- 上傳下載:這是工具的主要功能妒峦,能提高包使用的便利性重斑。比如想用 jquery 只需要 install 一下就可以了,不用到處找下載肯骇。上傳并不是必備的窥浪,根據(jù)文件存儲(chǔ)的位置而定,但需要有一定的機(jī)制保障累盗。
- 依賴分析:這也是包管理工具主要解決的問題之一寒矿,既然包之間是有聯(lián)系的,那么下載的時(shí)候就需要處理他們之間的依賴若债。下載一個(gè)包的時(shí)候也需要下載依賴的包符相。
功能介紹,摘自文章:http://chuo.me/2013/02/twitter-bower.html
安裝bower
$ npm install bower -g
bower使用
創(chuàng)建一個(gè)bower.json蠢琳,用來保存包信息啊终。
$ bower init
安裝生產(chǎn)環(huán)境的依賴,保存到bower.json傲须。
$ bower install PACKAGE --save
安裝開發(fā)環(huán)境的依賴蓝牲,保存到bower.json。比如:gulp泰讽、browser-sync等在項(xiàng)目開發(fā)時(shí)才使用的自動(dòng)化工具例衍。
$ bower install PACKAGE --save-dev
進(jìn)入項(xiàng)目目錄,安裝bootstrap到項(xiàng)目
$ bower install bootstrap
我們發(fā)現(xiàn)bootstrap已卸,對(duì)jquery是有依賴的佛玄。因?yàn)闀?huì)把自己對(duì)應(yīng)的依賴一同下載下來。不用手動(dòng)處理依賴?yán)病?/p>
bower命令查看
$ bower
Usage:
bower [] []
Commands累澡,列出了bower支持的各種命令梦抢。
cache:bower緩存管理
help:顯示Bower命令的幫助信息
home:通過瀏覽器打開一個(gè)包的github發(fā)布頁
info:查看包的信息
init:創(chuàng)建bower.json文件
install:安裝包到項(xiàng)目
link:在本地bower庫建立一個(gè)項(xiàng)目鏈接
list:列出項(xiàng)目已安裝的包
lookup:根據(jù)包名查詢包的URL
prune:刪除項(xiàng)目無關(guān)的包
register:注冊(cè)一個(gè)包
search:搜索包
update:更新項(xiàng)目的包
uninstall:刪除項(xiàng)目的包
小結(jié)
bower很方便的進(jìn)行包的搜索、安裝和卸載愧哟。
其實(shí)模塊化奥吩,版本依賴,開發(fā)類庫蕊梧,發(fā)布類庫霞赫,安裝類庫,都是一條命令望几,快把項(xiàng)目模塊化吧绩脆。
bower和npm兩個(gè)都是包管理器bower偏重于前端一些,,對(duì)于CSS/JS/模板等內(nèi)容進(jìn)行依賴管理。NPM主要運(yùn)用于Node.js項(xiàng)目的內(nèi)部依賴包管理靴迫,安裝的模塊位于項(xiàng)目根目錄下的node_modules文件夾內(nèi)惕味。
在實(shí)際項(xiàng)目中,NPM和Bower都會(huì)被運(yùn)用進(jìn)去玉锌。并且Bower的安裝和升級(jí)全都依賴于NPM名挥。
具體我在另外一篇文章中有提到:http://www.reibang.com/p/23141d29998e
----------------------------------------------------喜歡就動(dòng)動(dòng)小手哈。------------------------------------------------------
--------------------------------------你的支持是灑家-麥殼-macrolam前進(jìn)的動(dòng)力--------------------------------------