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.json的dependecies数组中(方便以后重新安装)。
- 如果使用参数 -D 或 --save-dev 则安装完后,会把包名及版本号添加到bower.json的devDependecies数组中。
- 如果不使用参数,则只安装包到bower_components目录,不修改bower.json文件。
更新
bower update 包名
搜索
bower search 包名
卸载
bower uninstall 包名
不支持一次卸载所有的包,只能手动全部删除。
卸载包并不从缓存中删除,只是安装目录移除,下次安装会优先从本地缓存中复制安装。
缓存
缓存位置默认:
WIN:C:\Users\用户名\AppData\Local\bower\cache\packages
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 文件
{
"name":"", //必须,如果需要注册包,则该包名唯一。
"description":"", //可选,包描述
"main":[], //可选,入口文件,bower本身不使用,供第三方构建工具会使用,每种文件类型只能有一个。
"ignore":[], //可选,文件或目录列表。bower安装的时候将忽略该列表中的文件。
//bower是从git仓库或压缩包下载一个包,里面的文件并不一定全部需要。
"dependencies":[], //依赖包,name:value,value可以是包的semver
//range(版本号范围),也可以直接是一个包的git地址或压缩包地址。
"devDependencies":[], //开发依赖包,仅仅在开发过程中测试或者编译文档用,部署生产环境是不需要。
//格式和dependencies 相同
"resolutions":[], //包引用冲突自动使用该模块指定的包版本
//格式和dependencies 相同
"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,resolutions
如果你把自己开发的内容打包发布出去,这个时候才需要配置其他项。
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
还支持一些函数判断,就不举例了。。。。
网友评论