bower 強大的管理web包管理工具
Bower介紹
bower官方地址:http://bower.io/
bower是twitter的又一個開源項目,使用nodejs開發(fā),用于web包管理。如果越來越多得開源項目都托管在github上,bower只需要將github上項目加上一個配置文件既可以使用bower方式使用安裝包。作為包管理,bower能提供添加新web包,更新web包,刪除web包,發(fā)布web包功能,管理包依賴。web包通常認為由html+css+javascript構成。
quick start: 解決實際問題
試想我們開始一個新的webapp,需要用到jQuery庫,以前的做法是到官網(wǎng)上去down最新的jquery.js文件放在項目目錄下面。如果有bower,這個工作就簡單了。
先安裝上bower(確保先有node環(huán)境)
npm install bower -g
在項目目錄中運行
bower install jquery
運行成功之后項目中會多出components文件夾,文件夾中jquery文件夾,jquery文件夾里面就有最新的jquery文件。
這還不能說明他NB的地方,試想下面的場景,jQuery升級了,是不是再down一次jQuery呢?bower可以這樣做:
bower update jquery
就可以自動升級到最新版的jquery了。
再假設我們需要使用bootstrap,bootstrap可不是一個文件,有css,js還有圖片。js還依賴于jQuery,如果使用bower:
bower install bootstrap
bower會自動從github上down最新的代碼,而且,會自動將依賴包jquery也down一次。
更多的功能
熟悉npm的同學一定會對bower很熟悉,思路很多的相似,比如
查看依賴包結構
bower list
├─┬ bootstrap#2.2.2
│ └── jquery#1.8.3
├── jquery#1.8.3
├── requirejs#2.1.2
└── rgraph2#d8f957ae056a79344807c9cb25fbfe3f4b855aa2
AD:rgraph2是最近研究的一個開源項目,已經(jīng)發(fā)布到bower上了。不過版本還有點問題。
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
項目內(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.dbjr.com.cn
"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到倉庫中。然后注冊
bower register rgraph2 git://github.com/hafeyang/rgraph2.git
這樣就可以使用install命令來管理rgraph2包了。
總結
bower提供了一種我理想中的web包管理方式。借助了npm的很多的思想,應該說npm是一種非常理想的包管理工具,nodejs在很早的時候提出包管理的工具,制定nodejs包規(guī)范,對于整個生態(tài)圈的建設非常有意義。
相關文章
淺談vscode中task.json和launch.json的關系
本文主要介紹了淺談vscode中task.json和launch.json的關系,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-08-08最新IntelliJ IDEA 2020.2永久激活碼(親測有效)
今天一大波朋友反饋idea2020激活碼失效的問題,小編快馬加鞭給大家找到解決方案,本文以IDEA 2020.2.4激活碼破解教程為例給大家詳細介紹,需要idea2020激活碼的朋友快來參考下本文吧2020-11-11MobaXterm詳細使用圖文教程(MobaXterm連接Linux服務器)
這篇文章主要介紹了MobaXterm詳細使用教程,介紹一下如何設置并用MobaXterm來連接Linux服務器,本文介紹了三種連接方式:SSH,F(xiàn)TP,serial,以及幾個有用的設置和命令,需要的朋友可以參考下2023-05-05MobaXterm遠程連接Linux服務器(Ubuntu)圖文教程
這篇文章主要為大家介紹了MobaXterm遠程連接Linux服務器(Ubuntu)的相關教程,文中通過圖文進行了詳細的總結,需要的小伙伴可以收藏下2023-08-08基于Python和Java實現(xiàn)單詞計數(shù)(Word Count)
Spark框架也是MapReduce-like模型,采用“分治-聚合”策略來對數(shù)據(jù)分布進行分布并行處理,本文就來利用Spark實現(xiàn)單詞統(tǒng)計的功能,需要的可以參考一下2023-05-05