bower 强大的管理web包管理工具

所属分类: 网络编程 / 其它综合 阅读数: 448
收藏 0 赞 0 分享

Bower介绍

bower官方地址:http://bower.io/

bower是twitter的又一个开源项目,使用nodejs开发,用于web包管理。如果越来越多得开源项目都托管在github上,bower只需要将github上项目加上一个配置文件既可以使用bower方式使用安装包。作为包管理,bower能提供添加新web包,更新web包,删除web包,发布web包功能,管理包依赖。web包通常认为由html+css+javascript构成。

quick start: 解决实际问题

试想我们开始一个新的webapp,需要用到jQuery库,以前的做法是到官网上去down最新的jquery.js文件放在项目目录下面。如果有bower,这个工作就简单了。

先安装bower(确保先有node环境)

复制代码 代码如下:

npm install bower -g


在项目目录中运行

bower install jquery
运行成功之后项目中会多出components文件夹,文件夹中jquery文件夹,jquery文件夹里面就有最新的jquery文件。

这还不能说明他NB的地方,试想下面的场景,jQuery升级了,是不是再down一次jQuery呢?bower可以这样做:

bower update jquery
就可以自动升级到最新版的jquery了。

再假设我们需要使用bootstrap,bootstrap可不是一个文件,有css,js还有图片。js还依赖于jQuery,如果使用bower:

bower install bootstrap
bower会自动从github上down最新的代码,而且,会自动将依赖包jquery也down一次。

更多的功能

熟悉npm的同学一定会对bower很熟悉,思路很多的相似,比如

查看依赖包结构

bower list
├─┬ bootstrap#2.2.2
│ └── jquery#1.8.3
├── jquery#1.8.3
├── requirejs#2.1.2
└── rgraph2#d8f957ae056a79344807c9cb25fbfe3f4b855aa2
AD:rgraph2是最近研究的一个开源项目,已经发布到bower上了。不过版本还有点问题。

bower ls同理,bower还提供了一种更体贴的依赖包查看视图

bower ls --paths
{
"bootstrap": [
"components/bootstrap/docs/assets/js/bootstrap.js",
"components/bootstrap/docs/assets/css/bootstrap.css"
],
"jquery": "components/jquery/jquery.js",
"requirejs": "components/requirejs",
"rgraph2": [
"components/rgraph2/lib/raphael-min.js",
"components/rgraph2/lib/rgraph2.js"
]
}
可以直接将他生成文件,可以用于requirejs,seajs的模块配置文件。

安装指定版本的库

bower install jquery#1.7.2
直接搜索包

#搜索jquery库以及插件
bower search jquery
删除包

bower uninstall jquery
如果包被依赖,不能删除

更新包至最新版本

bower update jquery
项目内查找包

bower lookup jquery
查看包信息

bower info jquery
发布自己的web包

如果使用github托管代码,在仓库的根目录先添加component.json作为配置文件,(类似nodejs中的package.json)。仍以rgraph2为例
复制代码 代码如下:

{
"name": "rgraph2",
"version": "1.0.0",
"main": [
"./lib/raphael-min.js",
"./lib/rgraph2.js"
],
"dependencies": {},
"readmeFilename": "README.md",
"_id": "rgraph2@1.0.0",
"description": "Web graph implementation by raphaeljs",
"repository": {
"type": "git", www.jb51.net
"url": "git://github.com/hafeyang/rgraph2.git"
}
}

指定包名name和版本version以及文件列表main,依赖dependencies,git信息repository。依赖的声明格式为:

复制代码 代码如下:

"devDependencies": {
"uglify-js": "1.2.6"
, "jshint": "0.6.1"
, "recess": "1.0.3"
, "connect": "2.1.3"
, "hogan.js": "2.0.0"
}

将comoponent.jsonpush到仓库中。然后注册

 bower register rgraph2 git://github.com/hafeyang/rgraph2.git
这样就可以使用install命令来管理rgraph2包了。

总结

bower提供了一种我理想中的web包管理方式。借助了npm的很多的思想,应该说npm是一种非常理想的包管理工具,nodejs在很早的时候提出包管理的工具,制定nodejs包规范,对于整个生态圈的建设非常有意义。

更多精彩内容其他人还在看

科学知识:时间复杂度计算方法

这篇文章主要介绍了科学知识:时间复杂度计算方法,本文介绍了问题的定义、时间复杂度计算步骤、时间复杂度计算规则等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

科学知识:理解socket

这篇文章主要介绍了科学知识:理解socket,本文试图用简洁的语言说清楚socket的相关知识,以便理解,需要的朋友可以参考下
收藏 0 赞 0 分享

科学知识:同步、异步、阻塞和非阻塞区别

这篇文章主要介绍了科学知识:同步、异步、阻塞和非阻塞区别,本文分别讲解了这些概念,需要的朋友可以参考下
收藏 0 赞 0 分享

24种编程语言的Hello World程序

这篇文章主要介绍了24种编程语言的Hello World程序,包括熟知的Java、C语言、C++、C#、Ruby、Python、PHP等编程语言,需要的朋友可以参考下
收藏 0 赞 0 分享

科普:多线程与异步的区别

这篇文章主要介绍了科普:多线程与异步的区别,本文讲解了多线程和异步操作的异同、异步操作的本质、线程的本质、异步操作的优缺点、多线程的优缺点等内容,需要的朋友可以参考下
收藏 0 赞 0 分享

网址(URL)支持的最大长度是多少?最大支持多少个字符?

这篇文章主要介绍了网址(URL)支持的最大长度是多少?最大支持多少个字符?本文总结了IIS、apache服务器及浏览器软件Internet Explorer、Firefox、Opera、chrome等主流的浏览器软件支持情况,需要的朋友可以参考下
收藏 0 赞 0 分享

RPC、RMI、SOAP的区别详解

这篇文章主要介绍了RPC、RMI、SOAP的区别详解,本文还同时讲解了RPC、SOAP、WSDL的关系,需要的朋友可以参考下
收藏 0 赞 0 分享

一张图告诉你计算机编程语言的发展历史

这篇文章主要介绍了一张图告诉你计算机编程语言的发展历史,也可看作是计算机的发展历史大事记,需要的朋友可以参考下
收藏 0 赞 0 分享

Flyway数据库版本控制的教程详解

这篇文章主要介绍了Flyway数据库版本控制的教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

github版本库使用详细图文教程(命令行及图形界面版)

今天我们就来学习github的使用,我们将用它来管理我们的代码,你会发现它的好处的,当然是要在本系列教程全部完成之后,所以请紧跟站长的步伐,今天是第一天,我们来学习如何在git上建立自己的版本仓库,并将代码上传到仓库中
收藏 0 赞 0 分享
查看更多