今天本身用Angular寫東西的時候,下載了Angular-seed項目,發現須要用到bower,以前也使用過,沒有仔細瞭解,今天趁機瞭解到一些。javascript
bower的官網地址: http://bower.io/css
Bower是一個客戶端技術的軟件包管理器,它可用於搜索、安裝和卸載如JavaScript、HTML、CSS之類的網絡資源。它擅長前端的包管理,經過其API展現了包依賴模型。使得項目不存在系統級的依賴,不一樣的應用程序間也不會共享依賴,整個依賴樹是扁平的。html
節省時間。爲何要學習Bower的第一個緣由,就是它會爲你節省尋找客戶端的依賴關係的時間。每次我須要安裝jQuery的時候,我都須要去jQuery網站下載包或使用CDN版本。可是有了Bower,你只須要輸入一個命令,jquery就會安裝在本地計算機上,你不須要去記版本號之類的東西,你也能夠經過Bower的info命令去查看任意庫的信息。前端
脫機工做。Bower會在用戶主目錄下建立一個.bower的文件夾,這個文件夾會下載全部的資源、並安裝一個軟件包使它們能夠離線使用。若是你熟悉Java,Bower便是一個相似於如今流行的Maven構建系統的.m2倉庫。每次你下載任何資源庫都將被安裝在兩個文件夾中 —— 一個在的應用程序文件夾,另外一個在用戶主目錄下的.bower文件夾。所以,下一次你須要這個倉庫時,就會用那個用戶主目錄下.bower中的版本。html5
能夠很容易地展示客戶端的依賴關係。你能夠建立一個名爲bower.json的文件,在這個文件裏你能夠指定全部客戶端的依賴關係,任什麼時候候你須要弄清楚你正在使用哪些庫,你能夠參考這個文件。java
讓升級變得簡單。假設某個庫的新版本發佈了一個重要的安全修補程序,爲了安裝新版本,你只須要運行一個命令,bower會自動更新全部有關新版本的依賴關係。node
Bower依賴於NodeJS和npm。可使用npm全局安裝Bower,-g
操做表示全局。jquery
npm install -g bower
須要注意的是,Bower的運行,依賴於版本控制工具git,從github拉取以來信息。git
下面的命令能夠更新或卸載Bower。github
npm update -g bower
npm uninstall -global bower
安裝完bower以後就可使用全部的bower命令了。能夠鍵入help
命令來查看bower能夠完成那些操做,以下:
bower help
用法:
bower <command> [<args>] [<options>]
命令Commands:
cache-clean 清除Bower的緩存,或清除指定包的緩存 completion Bower的Tab鍵自動完成 help 顯示Bower命令的輔助信息 info 指定包的版本信息和描述 init 交互式的建立bower.json文件 install 安裝一個本地的包 link 包目錄的符號鏈接 list, ls 列出全部已安裝的包 lookup 根據包名查詢包的URL register 註冊一個包 search 根據包名搜索一個包 uninstall 刪除一個包 update 更新一個包
選項:
--no-color 關閉彩色輸出(適合Bower的全部命令)
還可使用命令'bower help <command>'來查看Bower指定命令的詳細信息。
Bower是一個軟件包管理器,因此你能夠在應用程序中用它來安裝新的軟件包。舉例來看一下來如何使用Bower安裝JQuery,在你想要安裝該包的地方建立一個新的文件夾,鍵入以下命令:
bower install jquery
上述命令完成之後,你會在你剛纔建立的目錄下看到一個bower_components
的文件夾,其中目錄以下:
tree bower_components/ bower_components/ └── jquery ├── README.md ├── bower.json ├── component.json ├── composer.json ├── jquery-migrate.js ├── jquery-migrate.min.js ├── jquery.js ├── jquery.min.js ├── jquery.min.map └── package.json 1 directory, 10 files
Bower會使用庫的名字,去在線索引中搜索該庫的網址。某些狀況下,若是一個庫很新(或者你不想使用默認網址),可能須要咱們手動指定該庫的網址。
bower install git://github.com/documentcloud/backbone.git bower install http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js bower install ./some/path/relative/to/this/directory/backbone.js
上面的命令說明,指定的網址能夠是github地址、http網址、本地文件。
默認狀況下,會安裝該庫的最新版本,可是也能夠手動指定版本號。
bower install jquery-ui#1.10.1
上面的命令指定安裝jquery-ui的1.10.1版。
若是某個庫依賴另外一個庫,安裝時默認將所依賴的庫一塊兒安裝。好比,jquery-ui依賴jquery,安裝時會連jquery一塊兒安裝。
安裝後的庫默認存放在項目的bower_components子目錄,若是要指定其餘位置,可在.bowerrc文件的directory屬性設置。
如今就能夠在應用程序中使用jQuery包了,在jQuery裏建立一個簡單的html5文件:
<!doctype html> <html> <head> <title>Learning Bower</title> </head> <body> <button>Animate Me!!</button> <div style="background:red;height:100px;width:100px;position:absolute;"> </div> <script type="text/javascript" src="bower_components/jquery/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("div").animate({left:'250px'}); }); }); </script> </body> </html>
正如你所看到的,你剛剛引用jquery.min.js文件,現階段完成。
若是你想找出全部安裝在應用程序中的包,可使用list命令:
bower list bower check-new Checking for new versions of the project dependencies.. blog /Users/shekhargulati/day1/blog └── jquery#2.0.3 extraneous
假如你想在你的應用程序中使用twitter的bootstrap框架,但你不肯定包的名字,這時你可使用search
命令:
bower search bootstrap Search results: bootstrap git://github.com/twbs/bootstrap.git angular-bootstrap git://github.com/angular-ui/bootstrap-bower.git sass-bootstrap git://github.com/jlong/sass-twitter-bootstrap.git
若是你想看到關於特定的包的信息,可使用info
命令來查看該包的全部信息:
bower info bootstrap bower bootstrap#* not-cached git://github.com/twbs/bootstrap.git#* bower bootstrap#* resolve git://github.com/twbs/bootstrap.git#* bower bootstrap#* download https://github.com/twbs/bootstrap/archive/v3.0.0.tar.gz bower bootstrap#* extract archive.tar.gz bower bootstrap#* resolved git://github.com/twbs/bootstrap.git#3.0.0 { name: 'bootstrap', version: '3.0.0', main: [ './dist/js/bootstrap.js', './dist/css/bootstrap.css' ], ignore: [ '**/.*' ], dependencies: { jquery: '>= 1.9.0' }, homepage: 'https://github.com/twbs/bootstrap' } Available versions: - 3.0.0 - 3.0.0-rc1 - 3.0.0-rc.2 - 2.3.2 .....
若是你想獲得單個包的信息,也可使用info
命令:
bower info bootstrap#3.0.0 bower bootstrap#3.0.0 cached git://github.com/twbs/bootstrap.git#3.0.0 bower bootstrap#3.0.0 validate 3.0.0 against git://github.com/twbs/bootstrap.git#3.0.0 { name: 'bootstrap', version: '3.0.0', main: [ './dist/js/bootstrap.js', './dist/css/bootstrap.css' ], ignore: [ '**/.*' ], dependencies: { jquery: '>= 1.9.0' }, homepage: 'https://github.com/twbs/bootstrap' }
卸載包可使用uninstall
命令:
bower info bootstrap#3.0.0 bower bootstrap#3.0.0 cached git://github.com/twbs/bootstrap.git#3.0.0 bower bootstrap#3.0.0 validate 3.0.0 against git://github.com/twbs/bootstrap.git#3.0.0 { name: 'bootstrap', version: '3.0.0', main: [ './dist/js/bootstrap.js', './dist/css/bootstrap.css' ], ignore: [ '**/.*' ], dependencies: { jquery: '>= 1.9.0' }, homepage: 'https://github.com/twbs/bootstrap' }
卸載包可使用uninstall
命令:
bower uninstall jquery
項目根目錄下(也能夠放在用戶的主目錄下)的.bowerrc文件是Bower的配置文件,它大概像下面這樣。
{ "directory" : "components", "json" : "bower.json", "endpoint" : "https://Bower.herokuapp.com", "searchpath" : "", "shorthand_resolver" : "" }
其中的屬性含義以下。
bower.json文件的使用可讓包的安裝更容易,你能夠在應用程序的根目錄下建立一個名爲「bower.json」的文件,並定義它的依賴關係。使用bower init
命令來建立bower.json文件:
bower init [?] name: blog [?] version: 0.0.1 [?] description: [?] main file: [?] keywords: [?] authors: Shekhar Gulati <shekhargulati84@gmail.com> [?] license: MIT [?] homepage: [?] set currently installed components as dependencies? Yes [?] add commonly ignored files to ignore list? Yes [?] would you like to mark this package as private which prevents it from being accidentally published to the registry? No { name: 'blog', version: '0.0.1', authors: [ 'Shekhar Gulati <shekhargulati84@gmail.com>' ], license: 'MIT', ignore: [ '**/.*', 'node_modules', 'bower_components', 'test', 'tests' ], dependencies: { jquery: '~2.0.3' } } [?] Looks good? Yes
能夠查看該文件:
{ "name": "blog", "version": "0.0.1", "authors": [ "Shekhar Gulati <shekhargulati84@gmail.com>" ], "license": "MIT", "ignore": [ "**/.*", "node_modules", "bower_components", "test", "tests" ], "dependencies": { "jquery": "~2.0.3" } }
注意看,它已經加入了jQuery依賴關係。
如今假設也想用twitter bootstrap,咱們能夠用下面的命令安裝twitter bootstrap並更新bower.json文件:
bower install bootstrap --save
它會自動安裝最新版本的bootstrap並更新bower.json文件:
{ "name": "blog", "version": "0.0.1", "authors": [ "Shekhar Gulati <shekhargulati84@gmail.com>" ], "license": "MIT", "ignore": [ "**/.*", "node_modules", "bower_components", "test", "tests" ], "dependencies": { "jquery": "~2.0.3", "bootstrap": "~3.0.0" } }
有了bower.json文件之後,就能夠用bower install命令,一會兒安裝全部庫。
bower install
根據bower.json文件,還能夠向Bower的在線索引提交你的庫。
bower register <my-package-name> <git-endpoint> // 好比 bower register jquery git://github.com/jquery/jquery
注意,若是你的庫與現有的庫重名,就會提交失敗,若是你的package-name是駝峯的,也會註冊失敗。
註冊bower庫的例子,我註冊了一個命名color的庫,使用以下命令:
bower register color-namer https://github.com/CraryPrimitiveMan/ColorNamer
顯示信息以下:
bower convert Converted https://github.com/CraryPrimitiveMan/ColorNamer to git://github.com/CraryPrimitiveMan/ColorNamer.git bower resolve git://github.com/CraryPrimitiveMan/ColorNamer.git#* bower download https://github.com/CraryPrimitiveMan/ColorNamer/archive/0.0.1.tar.gz bower progress color-namer#* received 0.1MB bower progress color-namer#* received 0.1MB bower progress color-namer#* received 0.1MB bower progress color-namer#* received 0.2MB bower progress color-namer#* received 0.2MB bower progress color-namer#* received 0.2MB bower progress color-namer#* received 0.2MB bower progress color-namer#* received 0.3MB bower extract color-namer#* archive.tar.gz bower resolved git://github.com/CraryPrimitiveMan/ColorNamer.git#0.0.1 ? Registering a package will make it installable via the registry (https://bower? Registering a package will make it installable via the registry (https://bower.herokuapp.com), continue?: Yes bower register git://github.com/CraryPrimitiveMan/ColorNamer.git Package color-namer registered successfully! All valid semver tags on git://github.com/CraryPrimitiveMan/ColorNamer.git will be available as versions. To publish a new version, just release a valid semver tag. Run bower info color-namer to list the available versions.
能夠用以下命令查看註冊的bower庫的信息
bower info color-namer bower info color-namer#0.0.1
這就是今天的學習,但願能讓你對bower有個足夠的瞭解,最好能夠本身嘗試一下。
大部份內容摘自SegmentFault和阮一峯博客