我決定將第一天的學習主題選爲Bower。javascript
Bower是一個客戶端技術的軟件包管理器,它可用於搜索、安裝和卸載如JavaScript、HTML、CSS之類的網絡資源。其餘一些創建在Bower基礎之上的開發工具,如YeoMan和Grunt,這個會在之後的文章中介紹。css
節省時間。爲何要學習Bower的第一個緣由,就是它會爲你節省尋找客戶端的依賴關係的時間。每次我須要安裝jQuery的時候,我都須要去jQuery網站下載包或使用CDN版本。可是有了Bower,你只須要輸入一個命令,jquery就會安裝在本地計算機上,你不須要去記版本號之類的東西,你也能夠經過Bower的info命令去查看任意庫的信息。html
脫機工做。Bower會在用戶主目錄下建立一個.bower的文件夾,這個文件夾會下載全部的資源、並安裝一個軟件包使它們能夠離線使用。若是你熟悉Java,Bower便是一個相似於如今流行的Maven構建系統的.m2倉庫。每次你下載任何資源庫都將被安裝在兩個文件夾中 —— 一個在的應用程序文件夾,另外一個在用戶主目錄下的.bower文件夾。所以,下一次你須要這個倉庫時,就會用那個用戶主目錄下.bower中的版本。html5
能夠很容易地展示客戶端的依賴關係。你能夠建立一個名爲bower.json的文件,在這個文件裏你能夠指定全部客戶端的依賴關係,任什麼時候候你須要弄清楚你正在使用哪些庫,你能夠參考這個文件。java
讓升級變得簡單。假設某個庫的新版本發佈了一個重要的安全修補程序,爲了安裝新版本,你只須要運行一個命令,bower會自動更新全部有關新版本的依賴關係。node
爲了安裝bower,你首先須要安裝以下文件:jquery
一旦你已經安裝了上面所說的全部必要文件,鍵入如下命令安裝Bower:git
$ npm install -g bower
這行命令是Bower的全局安裝,-g
操做表示全局。github
安裝完bower以後就可使用全部的bower命令了。能夠鍵入help
命令來查看bower能夠完成那些操做,以下:npm
$ bower help Usage: bower <command> [<args>] [<options>] Commands: cache Manage bower cache help Display help information about Bower home Opens a package homepage into your favorite browser info Info of a particular package init Interactively create a bower.json file install Install a package locally link Symlink a package folder list List local packages lookup Look up a package URL by name prune Removes local extraneous packages register Register a package search Search for a package by name update Update a local package uninstall Remove a local package Options: -f, --force Makes various commands more forceful -j, --json Output consumable JSON -l, --log-level What level of logs to report -o, --offline Do not hit the network -q, --quiet Only output important information -s, --silent Do not output anything, besides errors -V, --verbose Makes output more verbose --allow-root Allows running commands as root
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
如今就能夠在應用程序中使用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 uninstall jquery
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有個足夠的瞭解,最好能夠本身嘗試一下。
原文 Day 1: Bower--Manage Your Client Side Dependencies
翻譯 SegmentFault