前端的学习--包管理器Bower

今天自己用Angular写东西的时候,下载了Angular-seed项目,发现需要用到bower,之前也使用过,没有仔细了解,今天趁机了解到一些。

bower的官网地址: http://bower.io/

Bower是一个客户端技术的软件包管理器,它可用于搜索、安装和卸载如JavaScript、HTML、CSS之类的网络资源。它擅长前端的包管理,通过其API展示了包依赖模型。使得项目不存在系统级的依赖,不同的应用程序间也不会共享依赖,整个依赖树是扁平的。

为什么使用Bower?摘自segmentfault


  1. 节省时间。为什么要学习Bower的第一个原因,就是它会为你节省寻找客户端的依赖关系的时间。每次我需要安装jQuery的时候,我都需要去jQuery网站下载包或使用CDN版本。但是有了Bower,你只需要输入一个命令,jquery就会安装在本地计算机上,你不需要去记版本号之类的东西,你也可以通过Bower的info命令去查看任意库的信息。

  2. 脱机工作。Bower会在用户主目录下创建一个.bower的文件夹,这个文件夹会下载所有的资源、并安装一个软件包使它们可以离线使用。如果你熟悉Java,Bower即是一个类似于现在流行的Maven构建系统的.m2仓库。每次你下载任何资源库都将被安装在两个文件夹中
    —— 一个在的应用程序文件夹,另一个在用户主目录下的.bower文件夹。因此,下一次你需要这个仓库时,就会用那个用户主目录下.bower中的版本。

  3. 可以很容易地展现客户端的依赖关系。你可以创建一个名为bower.json的文件,在这个文件里你可以指定所有客户端的依赖关系,任何时候你需要弄清楚你正在使用哪些库,你可以参考这个文件。

  4. 让升级变得简单。假设某个库的新版本发布了一个重要的安全修补程序,为了安装新版本,你只需要运行一个命令,bower会自动更新所有有关新版本的依赖关系。

Bower依赖于NodeJS和npm。可以使用npm全局安装Bower,-g 操作表示全局。

npm install -g bower

需要注意的是,Bower的运行,依赖于版本控制工具git,从github拉取以来信息。

下面的命令可以更新或卸载Bower。

npm update -g bower
npm uninstall -global bower

开始使用Bower

安装完bower之后就可以使用所有的bower命令了。可以键入help 命令来查看bower可以完成那些操作,如下:

bower help

用法:

bower <command> [<args>] [<options>]

命令Commands:


    cache-clean       清除Bower的缓存,或清除指定包的缓存
completion Bower的Tab键自动完成
help 显示Bower命令的辅助信息
info 指定包的版本信息和描述
init 交互式的创建bower.json文件
install 安装一个本地的包
link 包目录的符号连接
list, ls 列出所有已安装的包
lookup 根据包名查询包的URL
register 注册一个包
search 根据包名搜索一个包
uninstall 删除一个包
update 更新一个包

选项:
    --no-color
关闭彩色输出(适合Bower的所有命令)

还可以使用命令‘bower help
<command>‘来查看Bower指定命令的详细信息。

包的安装

Bower是一个软件包管理器,所以你可以在应用程序中用它来安装新的软件包。举例来看一下来如何使用Bower安装JQuery,在你想要安装该包的地方创建一个新的文件夹,键入如下命令:

bower install jquery

上述命令完成以后,你会在你刚才创建的目录下看到一个bower_components的文件夹,其中目录如下:


tree bower_components/
bower_components/
└── jquery
├── README.md
├── bower.json
├── component.json
├── composer.json
├── jquery-migrate.js
├── jquery-migrate.min.js
├── jquery.js
├── jquery.min.js
├── jquery.min.map
└── package.json

1 directory, 10 files

Bower会使用库的名字,去在线索引中搜索该库的网址。某些情况下,如果一个库很新(或者你不想使用默认网址),可能需要我们手动指定该库的网址。

bower install git://github.com/documentcloud/backbone.git
bower install http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js
bower install ./some/path/relative/to/this/directory/backbone.js

上面的命令说明,指定的网址可以是github地址、http网址、本地文件。

默认情况下,会安装该库的最新版本,但是也可以手动指定版本号。

bower install jquery-ui#1.10.1

上面的命令指定安装jquery-ui的1.10.1版。

如果某个库依赖另一个库,安装时默认将所依赖的库一起安装。比如,jquery-ui依赖jquery,安装时会连jquery一起安装。

安装后的库默认存放在项目的bower_components子目录,如果要指定其他位置,可在.bowerrc文件的directory属性设置。

包的使用

现在就可以在应用程序中使用jQuery包了,在jQuery里创建一个简单的html5文件:


<!doctype html>
<html>
<head>
<title>Learning Bower</title>
</head>
<body>

<button>Animate Me!!</button>
<div style="background:red;height:100px;width:100px;position:absolute;">
</div>

<script type="text/javascript" src="bower_components/jquery/jquery.min.js"></script>
<script type="text/javascript">

$(document).ready(function(){
$("button").click(function(){
$("div").animate({left:‘250px‘});
});
});
</script>
</body>
</html>

正如你所看到的,你刚刚引用jquery.min.js文件,现阶段完成。

所有包的列表

如果你想找出所有安装在应用程序中的包,可以使用list命令:

bower list
bower check-new Checking for new versions of the project dependencies..
blog /Users/shekhargulati/day1/blog
└── jquery#2.0.3 extraneous

包的搜索

假如你想在你的应用程序中使用twitter的bootstrap框架,但你不确定包的名字,这时你可以使用search 命令:

bower search bootstrap
Search results:

bootstrap git://github.com/twbs/bootstrap.git
angular-bootstrap git://github.com/angular-ui/bootstrap-bower.git
sass-bootstrap git://github.com/jlong/sass-twitter-bootstrap.git

包的信息


如果你想看到关于特定的包的信息,可以使用info 命令来查看该包的所有信息:


bower info bootstrap
bower bootstrap#* not-cached git://github.com/twbs/bootstrap.git#*
bower bootstrap#* resolve git://github.com/twbs/bootstrap.git#*
bower bootstrap#* download https://github.com/twbs/bootstrap/archive/v3.0.0.tar.gz
bower bootstrap#* extract archive.tar.gz
bower bootstrap#* resolved git://github.com/twbs/bootstrap.git#3.0.0

{
name: ‘bootstrap‘,
version: ‘3.0.0‘,
main: [
‘./dist/js/bootstrap.js‘,
‘./dist/css/bootstrap.css‘
],
ignore: [
‘**/.*‘
],
dependencies: {
jquery: ‘>= 1.9.0‘
},
homepage: ‘https://github.com/twbs/bootstrap‘
}

Available versions:
- 3.0.0
- 3.0.0-rc1
- 3.0.0-rc.2
- 2.3.2
.....

如果你想得到单个包的信息,也可以使用info 命令:


bower info bootstrap#3.0.0
bower bootstrap#3.0.0 cached git://github.com/twbs/bootstrap.git#3.0.0
bower bootstrap#3.0.0 validate 3.0.0 against git://github.com/twbs/bootstrap.git#3.0.0

{
name: ‘bootstrap‘,
version: ‘3.0.0‘,
main: [
‘./dist/js/bootstrap.js‘,
‘./dist/css/bootstrap.css‘
],
ignore: [
‘**/.*‘
],
dependencies: {
jquery: ‘>= 1.9.0‘
},
homepage: ‘https://github.com/twbs/bootstrap‘
}

包的卸载


卸载包可以使用uninstall 命令:


bower info bootstrap#3.0.0
bower bootstrap#3.0.0 cached git://github.com/twbs/bootstrap.git#3.0.0
bower bootstrap#3.0.0 validate 3.0.0 against git://github.com/twbs/bootstrap.git#3.0.0

{
name: ‘bootstrap‘,
version: ‘3.0.0‘,
main: [
‘./dist/js/bootstrap.js‘,
‘./dist/css/bootstrap.css‘
],
ignore: [
‘**/.*‘
],
dependencies: {
jquery: ‘>= 1.9.0‘
},
homepage: ‘https://github.com/twbs/bootstrap‘
}

包的卸载


卸载包可以使用uninstall 命令:

bower uninstall jquery

配置文件.bowerrc

项目根目录下(也可以放在用户的主目录下)的.bowerrc文件是Bower的配置文件,它大概像下面这样。


{
"directory" : "components",
"json" : "bower.json",
"endpoint" : "https://Bower.herokuapp.com",
"searchpath" : "",
"shorthand_resolver" : ""
}

其中的属性含义如下。

  • directory:存放库文件的子目录名。

  • json:描述各个库的json文件名。

  • endpoint:在线索引的网址,用来搜索各种库。

  • searchpath:一个数组,储存备选的在线索引网址。如果某个库在endpoint中找不到,则继续搜索该属性指定的网址,通常用于放置某些不公开的库。

  • shorthand_resolver:定义各个库名称简写形式。

bower.json文件的使用

bower.json文件的使用可以让包的安装更容易,你可以在应用程序的根目录下创建一个名为“bower.json”的文件,并定义它的依赖关系。使用bower
init
 命令来创建bower.json文件:


bower init
[?] name: blog
[?] version: 0.0.1
[?] description:
[?] main file:
[?] keywords:
[?] authors: Shekhar Gulati <[email protected]>
[?] license: MIT
[?] homepage:
[?] set currently installed components as dependencies? Yes
[?] add commonly ignored files to ignore list? Yes
[?] would you like to mark this package as private which prevents it from being accidentally published to the registry? No

{
name: ‘blog‘,
version: ‘0.0.1‘,
authors: [
‘Shekhar Gulati <[email protected]>‘
],
license: ‘MIT‘,
ignore: [
‘**/.*‘,
‘node_modules‘,
‘bower_components‘,
‘test‘,
‘tests‘
],
dependencies: {
jquery: ‘~2.0.3‘
}
}

[?] Looks good? Yes

可以查看该文件:


{
"name": "blog",
"version": "0.0.1",
"authors": [
"Shekhar Gulati <[email protected]>"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"jquery": "~2.0.3"
}
}

注意看,它已经加入了jQuery依赖关系。

现在假设也想用twitter bootstrap,我们可以用下面的命令安装twitter bootstrap并更新bower.json文件:

bower install bootstrap --save

它会自动安装最新版本的bootstrap并更新bower.json文件:


{
"name": "blog",
"version": "0.0.1",
"authors": [
"Shekhar Gulati <[email protected]>"
],
"license": "MIT",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"jquery": "~2.0.3",
"bootstrap": "~3.0.0"
}
}

有了bower.json文件以后,就可以用bower install命令,一下子安装所有库。

bower install

根据bower.json文件,还可以向Bower的在线索引提交你的库。

bower register <my-package-name> <git-endpoint>
// 比如
bower register jquery git://github.com/jquery/jquery

注意,如果你的库与现有的库重名,就会提交失败。

这就是今天的学习,希望能让你对bower有个足够的了解,最好可以自己尝试一下。

大部分内容摘自SegmentFault阮一峰博客

时间: 2024-10-26 18:34:20

前端的学习--包管理器Bower的相关文章

Bower =&gt; 前端开发也有包管理器

摘要: 一直以来npm,pip等各种包管理器好像都和前端开发没什么太大关系,当然因为nodejs的原因可能感觉npm会亲切一些,不过终归不是针对客户端的包管理工作,所以Bower的出现确实让人眼前一亮. 最近看到一个专门针对前端的包管理工具Bower,它可用于搜索.安装和卸载如JavaScript.HTML.CSS之类的网络资源.实际上angularjs的种子项目就是用它的,看到了吗,它是专门针对客户端资源的,也就是说它管理的基本上都是前端工程师使用的东东. Bower是用于web前端开发的包管

NET Core 静态文件及JS包管理器(npm, Bower)的使用

NET Core 静态文件及JS包管理器(npm, Bower)的使用 文章目录 在 ASP.NET Core 中添加静态文件 使用npm管理JavaScript包 使用Bower管理JavaScript包 在 ASP.NET Core 中添加静态文件 虽然ASP.NET主要大都做着后端的事情,但前端的一些静态文件也是很重要的.在ASP.NET Core中要启用静态文件,需要Microsoft.AspNetCore.StaticFiles组件.可以通过Nuget添加,或者在project.jso

扒一扒前端包管理器

好久没有写文章了,前端时间一直瞎忙,最近总算有空闲时间可以好好学习下了,今天和大家分享一下有关前端包管理器的东西,主要把工作中常用的bower与最近一直在研究的browserify.duo以及快过时的component进行了一下介绍与对比,都是干货,希望大家勿喷.啦啦啦,话不多说,开始吧: 一.Bower Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系,其主要作用就是:

bower程序包管理器与npm的对比及handlebars包的使用实例

1.bower: 专门为前端表现设计的程序包管理器,类似npm,主要用于前端优化.bower可以管理包含HTML,CSS,JavaScript,字体甚至是图像文件的组成部分.bower并没有做别的事 - 它仅仅安装你需要的包及其依赖的正确版本. 2.**依赖node环境,window用户必须安装git工具.安装和升级bower必须用npm. 3.npm 和bower 的最大区别,就是 npm 支持嵌套地依赖管理(),而 bower只能支持扁平的依赖(嵌套的依赖,由程序员自己解决). **npm与

linux程序包管理之rpm程序包管理器与yum前端工具

这里主要讲以CentOS为例,rpm程序包管理器的相关内容: CentOS的程序包管理器:   1) 程序包的命名规则:        源代码包:            software_name-VERSION.tar.gz            VERSION:major.minor.release                major:主版本号,通常代表重大功能改进的版本分支:                minor:次版本号,通常代表在某个版本的分支中的某个功能发生变化:     

YUM前端程序包管理器

一.概述: 1.常见程序包前端管理器: yum:Yellow dog Updater, Modified简写,由Duke University团队,修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于 RPM 包管理的字符前端软件包管理器. apt:Advanced Packaging Tools简写,是Debian及其衍生发行版,基于dpkg包管理器的前端工具. 2.yum特点: 1).可自动解决程序安装或卸载时的依赖性关系问题: 2).可以同时配置多

程序包管理的前端工具yum、程序包管理器编译安装、sed命令

下面介绍的是程序包管理的前端工具yum.程序包管理器编译安装.sed命令. 一.Linux程序包管理:程序包管理的[前端工具] 1.yum软件包仓库简介 CentOS系的管理工具有yum和dnf.yum是一款发行版的Linux,其使用的默认程序包管理工具为rpm. URL是yum定位软件包仓库和仓库中程序文件的主要标识方式,表示如下: 例如:schema://[[email protected]]hostname/PATH/TO/DOCUMENT[paramers][methord] (例子中的

以rpm为后端及以yum为前端工具的程序包管理器在Linux发行版系统centos中的使用

程序包管理: 应用程序的安装,实际上是解压缩并复制程序包中的文件到指定目录的过程: 程序包管理器: 方便终端用户进行程序的安装.卸载.升级.安装信息查询及校验等工作: 不同的Linux的发行版本中,有不同的程序包管理器: Debian:dpt:Redhat:rpm:S.u.S.E:rpm:Gentoo:借鉴了FREEBSD的portage程序包管理机制,ports方式,emerge工具:ArchLinux:pacman 以CentOS为例,rpm程序包管理器: rpm程序包的命名规则: 源代码包

【我的Linux,我做主!】rpm包管理器/yum前端工具/编译安装从入门到精通

Linux软件包管理之--rpm网络操作系统都是架构在底层硬件之上的,目前内核有Linux系列,UNIX系类,Windows系列等,再向上是程序库调用,程序的实现方式在不同的操作系统中实现的方式也不尽相同.操作系统向外输出供用户使用的接口称之为API(Application Programming Interface),向用户输出统一的调用接口,这样当一个文件使用调用接口后就可以在不同的操作系统中按照统一的格式输入输出了.(如下图)ABI(Application Binary Interface