1、什么是bower?
bower是twitter的一个开源项目,使用nodejs开发,用于web包管理。如果越来越多得开源项目都托管在github上,bower只需要将github上项目加上一个配置文件既可以使用bower方式使用安装包。作为包管理,bower能提供添加新web包,更新web包,删除web包,发布web包功能,管理包依赖。web包通常认为由html+css+javascript构成。
包管理是个复杂的问题,我们要知道谁依赖谁,还要明确哪个版本依赖哪个版本。这些对于开发人员来说,负担过重了。bower作为一个js依赖管理的工具,提供一种理想包管理方式,借助了npm的一些思想,为我们提供一个舒服的开发环境。
2、bower的安装
bower是一个命令行工具,可以用npm安装。
$ npm install -g bower
3、bower命令的使用
(1) 用bower install安装所需的包,安装的包将放在
bower_components/目录下。
#registered package
$ bower install jquery
#install specified version
$ bower install jquery#1.11.1
#Github shorthand
$ bower install desandro/masonry
#Git endpoint
$ bower install
git@github.com:twbs/bootstrap.git
#URL
$ bower install
http://code.jquery.com/jquery-1.11.0.min.js
(2) 查看项目中已经安装的包,包含包的依赖关系
$ bower list
bower check-new Checking for new versions of the project dependencies..
bower_test /Users/xiangwu/Project/node_project/bower_test
├─┬ bootstrap#3.2.0 extraneous
│ └── jquery#2.1.1
├── jasmine-core#e-tag:4e600e06c extraneous
├── jquery-1.11.0.min#e-tag:533225b6- extraneous
└─┬ masonry#3.1.5 extraneous
├─┬ get-size#1.1.7
│ └── get-style-property#1.0.3
└─┬ outlayer#1.2.0
├─┬ doc-ready#1.0.3
│ └── eventie#1.0.5
├── eventEmitter#4.2.8
├── eventie#1.0.5
├─┬ get-size#1.1.7
│ └── get-style-property#1.0.3
├── get-style-property#1.0.3
├── jquery-bridget#1.0.1
└── matches-selector#1.0.2
(3) 删除已安装的包
$ bower uninstall jquery
(4) 升级本项目的某个包的版本
$ bower update jquery
(5) 列出本项目已缓存的所有包的信息,包括URL、版本
$ bower cache list
bootstrap=git@github.com:twbs/bootstrap.git#3.2.0
doc-ready=git://github.com/desandro/doc-ready.git#1.0.3
eventEmitter=git://github.com/Wolfy87/EventEmitter.git#4.2.8
eventie=git://github.com/desandro/eventie.git#1.0.5
get-size=git://github.com/desandro/get-size.git#1.1.7
get-style-property=git://github.com/desandro/get-style-property.git#1.0.3
jasmine=git://github.com/pivotal/jasmine.git#2.0.1
jasmine-core=https://github.com/pivotal/jasmine/blob/master/lib/jasmine-core.js#*
jquery=git://github.com/jquery/jquery.git#2.1.1
jquery-1.11.0.min=http://code.
jquery.com/jquery-1.11.0.min.js#*
jquery-1.8.3.min=http://code.
jquery.com/jquery-1.8.3.min.js#*
jquery-bridget=git://github.com/desandro/jquery-bridget.git#1.0.1
masonry=git://github.com/desandro/masonry.git#3.1.5
matches-selector=git://github.com/desandro/matches-selector.git#1.0.2
outlayer=git://github.com/metafizzy/outlayer.git#1.2.0
(6) 查看某个包的信息,包的bower.json文件、包的所有版本号
$ bower info bootstrap
#指定版本号
$ bower info bootstrap#3.1.0
(7) 查看某个包的URL
$ bower lookup bootstrap
(8) 用浏览器打开某个包的发布主页
$ bower home jquery
(9) 搜索包含某个字符串的包
$ bower search jquery
4、用bower发布自己的包
bower规定开发人员用bower.json文件来定义自己的包的结构和依赖关系,类似于Nodejs中package.json文件的作用。
(1) 生成bower.json配置文件(参考
https://github.com/bower/bower.json-spec
)
$ bower init
该命令会提示你输入一些关于你即将开发的包的信息,然后根据这些信息生成一个基本的bower.json文件。
(2) 在github上为你的项目创建一个repository并绑定到本地的项目
(3) 注册你的包到bower官方的类库
$ bower register <my-package-name> <git-endpoint>
# for example
$ bower register example git://github.com/user/example.git
(4) 维护bower.json文件的dependencies
使用bower install <package> --save命令安装包时会将<package>添加到你项目的bower.json文件的dependencies array。一样的,使用bower install <package> --save-dev命令安装包时会将<package>添加到你项目的bower.json文件的devDependencies array。
(5) 取消注册包
$ bower unregister <package>
或者
$ curl -X DELETE “https://bower.herokuapp.com/packages/<package>?access_token=<token>"
Where
<package>
is the package name you want to delete and
<token>
is GitHub’s Personal Access Token that you can fetch from
GitHub settings for
A default GitHub Personal Access Token will work – no permissions necessary
You need to be an owner or collaborator of the repo and URL needs to be OK.
参考:bower官网
http://bower.io/