Bower:客戶端庫(kù)管理工具

2021-09-15 16:13 更新

概述

隨著網(wǎng)頁(yè)功能變得越來(lái)越復(fù)雜,同一張網(wǎng)頁(yè)加載多個(gè)JavaScript函數(shù)庫(kù)早已是家常便飯。開(kāi)發(fā)者越來(lái)越需要一個(gè)工具,對(duì)瀏覽器端的各種庫(kù)進(jìn)行管理,比如搜索、自動(dòng)安裝\卸載、檢查更新、確保依賴關(guān)系等等。Bower就是為了解決這個(gè)問(wèn)題而誕生的針對(duì)瀏覽器端的庫(kù)管理工具。

Bower基于node.js,所以安裝之前,必須先確保已安裝node.js。

$ sudo npm install bower --global

運(yùn)行上面的命令以后,Bower就已經(jīng)安裝在你的系統(tǒng)中了。運(yùn)行幫助命令,查看Bower是否安裝成功。

$ bower help

下面的命令可以更新或卸載Bower。

# 更新
$ sudo npm update -g bower

# 卸載
$ sudo npm uninstall --global bower

常用操作

項(xiàng)目初始化

在項(xiàng)目根目錄下,運(yùn)行下面的命令,進(jìn)行初始化。

$ bower init

通過(guò)回答幾個(gè)問(wèn)題,就會(huì)自動(dòng)生成bower.json文件。這是項(xiàng)目的配置文件,下面是一個(gè)例子。

{
  "name": "app-name",
  "version": "0.1.0",
  "main": ["path/to/app.html", "path/to/app.css", "path/to/app.js"],
  "ignore": [".jshintrc","**/*.txt"],
  "dependencies": {
    "sass-bootstrap": "~3.0.0",
    "modernizr": "~2.6.2",
    "jquery": "latests"
  },
  "devDependencies": {"qunit": ">1.11.0"}
}

有了bower.json文件以后,就可以用bower install命令,一下子安裝所有庫(kù)。

$ bower install

bower.json文件存放在庫(kù)的根目錄下,它的作用是(1)保存項(xiàng)目的庫(kù)信息,供項(xiàng)目安裝時(shí)使用,(2)向Bower.com提交你的庫(kù),該網(wǎng)站會(huì)讀取bower.json,列入在線索引。

$ bower register <my-package-name> <git-endpoint>

# 實(shí)例:在 bower.com 登記jquery
$ bower register jquery git://github.com/jquery/jquery

注意,如果你的庫(kù)與現(xiàn)有的庫(kù)重名,就會(huì)提交失敗。

庫(kù)的安裝

bower install命令用于安裝某個(gè)庫(kù),需要指明庫(kù)的名字。

$ bower install backbone

Bower會(huì)使用庫(kù)的名字,去在線索引中搜索該庫(kù)的網(wǎng)址。某些情況下,如果一個(gè)庫(kù)很新(或者你不想使用默認(rèn)網(wǎng)址),可能需要我們手動(dòng)指定該庫(kù)的網(wǎng)址。

$ 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

上面的命令說(shuō)明,指定的網(wǎng)址可以是github地址、http網(wǎng)址、本地文件。

默認(rèn)情況下,會(huì)安裝該庫(kù)的最新版本,但是也可以手動(dòng)指定版本號(hào)。

$ bower install jquery-ui#1.10.1

上面的命令指定安裝jquery-ui的1.10.1版。

如果某個(gè)庫(kù)依賴另一個(gè)庫(kù),安裝時(shí)默認(rèn)將所依賴的庫(kù)一起安裝。比如,jquery-ui依賴jquery,安裝時(shí)會(huì)連jquery一起安裝。

安裝后的庫(kù)默認(rèn)存放在項(xiàng)目的bower_components子目錄,如果要指定其他位置,可在.bowerrc文件的directory屬性設(shè)置。

庫(kù)的搜索和查看

bower search命令用于使用關(guān)鍵字,從在線索引中搜索相關(guān)庫(kù)。

bower search jquery

上面命令會(huì)得到下面這樣的結(jié)果。

Search results:

    jquery git://github.com/components/jquery.git
    jquery-ui git://github.com/components/jqueryui
    jquery.cookie git://github.com/carhartl/jquery-cookie.git
    jquery-placeholder git://github.com/mathiasbynens/jquery-placeholder.git
    jquery-file-upload git://github.com/blueimp/jQuery-File-Upload.git
    jasmine-jquery git://github.com/velesin/jasmine-jquery
    jquery.ui git://github.com/jquery/jquery-ui.git
    ...

bower info命令用于查看某個(gè)庫(kù)的詳細(xì)信息。

bower info jquery-ui

查看結(jié)果會(huì)列出該庫(kù)的依賴關(guān)系(dependencies),以及可以得到的版本(Available versions)。

庫(kù)的更新和卸載

bower update用于更新一個(gè)庫(kù),將其更新為最新版本。

$ bower update jquery-ui

如果不給出庫(kù)名,則更新所有庫(kù)。

bower uninstall命令用于卸載指定的庫(kù)。

$ bower uninstall jquery-ui

注意,默認(rèn)情況下會(huì)連所依賴的庫(kù)一起卸載。比如,jquery-ui依賴jquery,卸載時(shí)會(huì)連jquery一起卸載,除非還有別的庫(kù)依賴jquery。

列出所有庫(kù)

bower list或bower ls命令,用于列出項(xiàng)目所使用的所有庫(kù)。

Bower list
Bower ls

配置文件.bowerrc

項(xiàng)目根目錄下(也可以放在用戶的主目錄下)的.bowerrc文件是Bower的配置文件,它大概像下面這樣。

{
  "directory" : "components",
  "json"      : "bower.json",
  "endpoint"  : "https://Bower.herokuapp.com",
  "searchpath"  : "",
  "shorthand_resolver" : ""
}

其中的屬性含義如下。

  • directory:存放庫(kù)文件的子目錄名。
  • json:描述各個(gè)庫(kù)的json文件名。
  • endpoint:在線索引的網(wǎng)址,用來(lái)搜索各種庫(kù)。
  • searchpath:一個(gè)數(shù)組,儲(chǔ)存?zhèn)溥x的在線索引網(wǎng)址。如果某個(gè)庫(kù)在endpoint中找不到,則繼續(xù)搜索該屬性指定的網(wǎng)址,通常用于放置某些不公開(kāi)的庫(kù)。
  • shorthand_resolver:定義各個(gè)庫(kù)名稱簡(jiǎn)寫形式。

相關(guān)鏈接

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)