Bower是一個包管理工具。包的內容沒有限制,比如:js庫,框架,圖片/字體資源等等或者它們的組合都可以,只要是你需要的就行,你也可以打包一些內容通過在bower上登記注冊公開對外發布(當然Bower也支持提建私有包庫)。
常用命令
1.安裝
npm install -g bower
2.初始化
bower init
通過問答向導的方式在當前目錄生成一個bower.json文件。
3.查詢包信息和版本
bower info 包名
這個命令可以查看一個包的所有版本(所以也能知道最新版本號),并顯示最新版本的包信息(bower.json),并下載最新版本的包到本地緩存(如果之前沒下載)。
bower info 包名#版本號
查看包的某個版本的詳細信息。
4.安裝包
bower install
安裝當前目錄下bower.json中的指定所有包。生產環境部署時建議使用 -p 或 --production參數,這種情況不會安裝devDependencies。
bower install 包名 --save
安裝指定的包。
如果使用參數 -S 或 --save 則安裝完后,會把包名及版本號添加到bower.json的dependecies配置項數組中(方便以后重新安裝)。
如果使用參數 -D 或 --save-dev 則安裝完后,會把包名及版本號添加到bower.json的devDependecies配置項數組中。
如果不使用參數,則只安裝包到bower_components目錄,不修改bower.json文件。
5.更新
bower update 包名
6.搜索
bower search 包名
7.卸載
bower uninstall 包名
不支持一次卸載所有的包,只能手動全部刪除。卸載包并不從緩存中刪除,只是安裝目錄移除,下次安裝會優先從本地緩存中復制安裝。
8.緩存
Bower在安裝包的時候,會先下載包到本地緩存,然后再復制到安裝位置。緩存位置默認
Win:C:Users用戶名AppDataLocalbowercachepackagesLinux:~/.bower/packages
8.瀏覽列表
bower cace list [package...]
9.刪除緩存
bower cache clean
刪除除所有本地緩存
bower cache clean <package>#<version>
刪除除指定包的緩存,還可以指定版本。
10. .bowerrc 文件
這個文件主要用來配置安裝路徑,如果不指定則默認安裝到當前目錄下的bower_components目錄中。
{
"directory": "bower_components", //包安裝位置
"storage": {
"packages" : "~/.bower/packages" //包本地緩存位置
}
}
11.bower.json 文件
{
"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"
},
}