bower 強(qiáng)大的管理web包管理工具

字號(hào):


    Bower介紹
    bower官方地址:http://bower.io/
    bower是twitter的又一個(gè)開源項(xiàng)目,使用nodejs開發(fā),用于web包管理。如果越來越多得開源項(xiàng)目都托管在github上,bower只需要將github上項(xiàng)目加上一個(gè)配置文件既可以使用bower方式使用安裝包。作為包管理,bower能提供添加新web包,更新web包,刪除web包,發(fā)布web包功能,管理包依賴。web包通常認(rèn)為由html+css+javascript構(gòu)成。
    quick start: 解決實(shí)際問題
    試想我們開始一個(gè)新的webapp,需要用到j(luò)Query庫,以前的做法是到官網(wǎng)上去down最新的jquery.js文件放在項(xiàng)目目錄下面。如果有bower,這個(gè)工作就簡單了。
    先安裝bower(確保先有node環(huán)境)
    代碼如下:
    npm install bower -g
    在項(xiàng)目目錄中運(yùn)行
    bower install jquery
    運(yùn)行成功之后項(xiàng)目中會(huì)多出components文件夾,文件夾中jquery文件夾,jquery文件夾里面就有最新的jquery文件。
    這還不能說明他NB的地方,試想下面的場景,jQuery升級(jí)了,是不是再down一次jQuery呢?bower可以這樣做:
    bower update jquery
    就可以自動(dòng)升級(jí)到最新版的jquery了。
    再假設(shè)我們需要使用bootstrap,bootstrap可不是一個(gè)文件,有css,js還有圖片。js還依賴于jQuery,如果使用bower:
    bower install bootstrap
    bower會(huì)自動(dòng)從github上down最新的代碼,而且,會(huì)自動(dòng)將依賴包jquery也down一次。
    更多的功能
    熟悉npm的同學(xué)一定會(huì)對(duì)bower很熟悉,思路很多的相似,比如
    查看依賴包結(jié)構(gòu)
    bower list
    ├─┬ bootstrap#2.2.2
    │ └── jquery#1.8.3
    ├── jquery#1.8.3
    ├── requirejs#2.1.2
    └── rgraph2#d8f957ae056a79344807c9cb25fbfe3f4b855aa2
    AD:rgraph2是最近研究的一個(gè)開源項(xiàng)目,已經(jīng)發(fā)布到bower上了。不過版本還有點(diǎn)問題。
    bower ls同理,bower還提供了一種更體貼的依賴包查看視圖
    bower ls --paths
    {
    "bootstrap": [
    "components/bootstrap/docs/assets/js/bootstrap.js",
    "components/bootstrap/docs/assets/css/bootstrap.css"
    ],
    "jquery": "components/jquery/jquery.js",
    "requirejs": "components/requirejs",
    "rgraph2": [
    "components/rgraph2/lib/raphael-min.js",
    "components/rgraph2/lib/rgraph2.js"
    ]
    }
    可以直接將他生成文件,可以用于requirejs,seajs的模塊配置文件。
    安裝指定版本的庫
    bower install jquery#1.7.2
    直接搜索包
    #搜索jquery庫以及插件
    bower search jquery
    刪除包
    bower uninstall jquery
    如果包被依賴,不能刪除
    更新包至最新版本
    bower update jquery
    項(xiàng)目內(nèi)查找包
    bower lookup jquery
    查看包信息
    bower info jquery
    發(fā)布自己的web包
    如果使用github托管代碼,在倉庫的根目錄先添加component.json作為配置文件,(類似nodejs中的package.json)。仍以rgraph2為例
    代碼如下:
    {
    "name": "rgraph2",
    "version": "1.0.0",
    "main": [
    "./lib/raphael-min.js",
    "./lib/rgraph2.js"
    ],
    "dependencies": {},
    "readmeFilename": "README.md",
    "_id": "rgraph2@1.0.0",
    "description": "Web graph implementation by raphaeljs",
    "repository": {
    "type": "git", www.jb51.net
    "url": "git://github.com/hafeyang/rgraph2.git"
    }
    }
    指定包名name和版本version以及文件列表main,依賴dependencies,git信息repository。依賴的聲明格式為:
    代碼如下:
    "devDependencies": {
    "uglify-js": "1.2.6"
    , "jshint": "0.6.1"
    , "recess": "1.0.3"
    , "connect": "2.1.3"
    , "hogan.js": "2.0.0"
    }
    將comoponent.jsonpush到倉庫中。然后注冊(cè)
     bower register rgraph2 git://github.com/hafeyang/rgraph2.git
    這樣就可以使用install命令來管理rgraph2包了。
    總結(jié)
    bower提供了一種我理想中的web包管理方式。借助了npm的很多的思想,應(yīng)該說npm是一種非常理想的包管理工具,nodejs在很早的時(shí)候提出包管理的工具,制定nodejs包規(guī)范,對(duì)于整個(gè)生態(tài)圈的建設(shè)非常有意義。