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

  • 还支持一些函数判断,就不举例了。。。。

相关文章
相关标签/搜索