Bower 使用指南

Bower是一個包管理工具。包的內容沒有限制,好比:js庫,框架,圖片/字體資源等等或者它們的組合均可以,只要是你須要的就行,你也能夠打包一些內容經過在bower上登記註冊公開對外發布(固然Bower也支持提建私有包庫)。javascript

經常使用命令

安裝

npm install -g bowerjava

初始化

bower init node

經過問答嚮導的方式在當前目錄生成一個bower.json文件。git

查詢包信息和版本

bower info 包名es6

這個命令能夠查看一個包的全部版本(因此也能知道最新版本號),並顯示最新版本的包信息(bower.json),並下載最新版本的包到本地緩存(若是以前沒下載)。github

bower info 包名#版本號npm

查看包的某個版本的詳細信息。json

安裝包

bower install數組

安裝當前目錄下bower.json中的指定全部包。生產環境部署時建議使用 -p--production參數,這種狀況不會安裝devDependencies。緩存

bower install 包名 --save

安裝指定的包。

  • 若是使用參數 -S--save 則安裝完後,會把包名及版本號添加到bower.jsondependecies配置項數組中(方便之後從新安裝)。

  • 若是使用參數 -D--save-dev 則安裝完後,會把包名及版本號添加到bower.jsondevDependecies配置項數組中。

  • 若是不使用參數,則只安裝包到bower_components目錄,不修改bower.json文件。

更新

bower update 包名

搜索

bower search 包名

卸載

bower uninstall 包名

不支持一次卸載全部的包,只能手動所有刪除。
卸載包並不從緩存中刪除,只是安裝目錄移除,下次安裝會優先從本地緩存中複製安裝。

緩存

Bower在安裝包的時候,會先下載包到本地緩存,而後再複製到安裝位置。
緩存位置默認:

Win:C:Users用戶名AppDataLocalbowercachepackages
Linux:~/.bower/packages

瀏覽列表

bower cace list [package...]

刪除緩存

bower cache clean
刪除除全部本地緩存

bower cache clean <package>#<version>
刪除除指定包的緩存,還能夠指定版本。

.bowerrc 文件

這個文件主要用來配置安裝路徑,若是不指定則默認安裝到當前目錄下的bower_components目錄中。

{
  "directory": "bower_components",   //包安裝位置
  "storage": {
    "packages" : "~/.bower/packages"  //包本地緩存位置
  }
}

其餘配置項參見:bowerrc/spec

bower.json 文件

不管你是使用bower來爲項目管理外部依賴,仍是準備製做一個包,都是經過bower.json文件來進行的,這個文件能夠說是bower運行的核心。bower.json的配置項和其餘包管理工具,好比npmcomposer的都差很少,你也能夠經過分析這個文件來思考包管理器是如何運行的。

{
    "name":"",              //必須,若是須要註冊包,則該包名惟一。
    
    "description":"",       //可選,包描述
    
    "main":[],              //可選,入口文件,bower自己不使用,供第三方構建工具會使用
                            //每種文件類型只能有一個。
    
    "ignore":[],            //可選,文件或目錄列表。bower安裝的時候將忽略該列表中的文件。
                            //bower是從git倉庫或壓縮包下載一個包,裏面的文件並不必定所有須要。
    
    "dependencies":[],      //依賴包,name:value,value能夠是包的semver       
                            //range(版本號範圍),也能夠直接是一個包的git地址或壓縮包地址。
                            
    "devDependencies":[],   //開發依賴包,僅僅在開發過程當中測試或者編譯文檔用,部署生產環境是不須要。
                            //格式和dependencies 相同
                            
    "resolutions":[],       //包引用衝突自動使用該模塊指定的包版本
                            //格式和dependencies 相同
                            
    "overrides" :[          //這個也很關鍵,能夠覆蓋一個包中的默認設置,好比main裏面設定的入口文件
        "package-name":{    //這樣能夠根據須要,讓第三方工具只打包須要的文件。
            "main":[]
        }
    ],
                            
    "moduleType":"",        //可選,指定包採用那種模塊化方式(globals,amd,node,es6,yui)
    
    "private":Boolean,      //是否公開發布當前包,若是隻是使用bower來管理項目的包,設置爲true.
    
    "license":"",           //受權方式(GPL-3.0,CC-BY-4.0.....)
    
    "keywords":[],          //可選,方便註冊後容易被其餘人搜索到。
    
    "authors":[],           //做者列表
    
    "homepage":[],          //主頁,包介紹頁
    
    "repository":{          //包所在倉庫。
        "type": "git",
        "url": "git://github.com/foo/bar.git"
    },
}

bower用這套格式管理全部的包,因此下載的每一個包中都會包含一個bower.json文件。
若是隻是使用bower做爲項目的包管理工具,上述配置項只需關注:dependencies, devDependencies, resolutionsoverrides便可
若是你把本身開發的內容打包發佈出去,這個時候才須要配置其餘項。
配置項的更多解釋能夠參考:https://github.com/bower/spec...

semver range

Bower使用semver range來匹配版本。
經常使用的版本區域表達式:

  • 比較符: < > <= >= =

  • 範圍:1.2.3 - 2.3.5

  • 通配符:1.2.* 匹配:大於1.2.0小於1.3.0

  • 波浪範圍:~1.2.3 匹配:大於當前版本,小於次末位+1,本例中是 大於1.2.3小於1.3.0

  • 插入符範圍:^1.2 匹配:大於當前版本,小於從左側開始第一個非零值+1,本例大於1.2小於2.0

  • 還支持一些函數判斷,就不舉例了。。。。

相關文章
相關標籤/搜索