web包管理工具bower简介

时间:2023-02-14 18:16:05
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/