博客 / 詳情

返回

Bower 使用指南

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

常用命令

安裝

npm install -g bower

初始化

bower init

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

查詢包信息和版本

bower info 包名

這個命令可以查看一個包的所有版本(所以也能知道最新版本號),並顯示最新版本的包信息(bower.json),並下載最新版本的包到本地緩存(如果之前沒下載)。

bower info 包名#版本號

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

安裝包

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

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

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.