理解bower是如何管理依赖的

Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系。

两个名词解释:什么是包,什么是管理?

  • “包”是指一系列有意义的资源的集合,在bower这里,更多体现在json文件,它是这些资源的配置文件,一个完整的包都应该有一个bower.json文件。
  • “管理”包含获取,下载,安装,更新,查找,注册等等一系列对资源的操作。

理解npm和bower的关系:npm是专门管理node模块的管理工具,bower是node模块;

Bower 的基础功能有哪些?

  • 注册模块:每个包需要确定一个唯一的 ID 使得搜索和下载的时候能够正确匹配
  • 文件存储:把文件存储在一个有效的网络地址上,使用的时候可以直接下载到
  • 上传下载:你可以把你的包注册后上传存储,使用的时候可以使用一条命令直接下载到当前项目
  • 依赖分析:它帮我们解决了包与包直接的依赖关系,当我们下载一个包A的时候,由于它依赖包B,所以bower会自动帮我们下载好包B

为什么要使用Bower?

  • 节省时间。为什么要学习Bower的第一个原因,就是它会为你节省寻找客户端的依赖关系的时间。每次我需要安装jQuery的时候,我都需要去jQuery网站下载包或使用CDN版本。但是有了Bower,你只需要输入一个命令,jquery就会安装在本地计算机上,你不需要去记版本号之类的东西,你也可以通过Bower的info命令去查看任意库的信息。
  • 脱机工作。Bower会在用户主目录下创建一个.bower的文件夹,这个文件夹会下载所有的资源、并安装一个软件包使它们可以离线使用。如果你熟悉Java,Bower即是一个类似于现在流行的Maven构建系统的.m2仓库。每次你下载任何资源库都将被安装在两个文件夹中 —— 一个在的应用程序文件夹,另一个在用户主目录下的.bower文件夹。因此,下一次你需要这个仓库时,就会用那个用户主目录下.bower中的版本。
  • 可以很容易地展现客户端的依赖关系。你可以创建一个名为json的文件,在这个文件里你可以指定所有客户端的依赖关系,任何时候你需要弄清楚你正在使用哪些库,你可以参考这个文件。
  • 让升级变得简单。假设某个库的新版本发布了一个重要的安全修补程序,为了安装新版本,你只需要运行一个命令,bower会自动更新所有有关新版本的依赖关系。

如何安装Bower?

Bower依赖于Node.js,Git(资源主要通过git进行下载),因此你需要提前安装好,才能正常安装bower。 Bower可以通过NPM进行安装:

一旦你已经安装了上面所说的所有必要文件,键入命令安装Bower:$ npm install -g bower  (注意,一定要在PC上安装git)

这行命令是Bower的全局安装,-g 操作表示全局。

$ bower –version //检查版本确认是否安装好
$ npm update -g bower //更新Bower版本
$ npm uninstall --global bower 卸载Bower

详情信息请看http://www.cnblogs.com/nickai/p/5864898.html下的博客

时间: 2024-10-14 20:44:49

理解bower是如何管理依赖的的相关文章

bower解决js的依赖管理备记

一个新的web项目开始,我们总是很自然地去下载需要用到的js类库文件,比如jQuery,去官网下载名为jquery-1.10.2.min.js文件,放到我们的项目里.当项目又需要bootstrap的时候,我们会重复刚才的工作,去bootstrap官网下载对应的类库.如果bootstrap所依赖的jQuery并不是1.10.2,而是2.0.3时,我们会再重新下载一个对应版本的jQuery替换原来的. 包管理是个复杂的问题,我们要知道谁依赖谁,还要明确哪个版本依赖哪个版本.这些对于开发人员来说,负担

使用Bower管理依赖以及版本控制

Bower用来管理项目的依赖,版本等问题 安装Bower http://bower.io/ (依赖Git) npm install -g bower 安装库文件 bower install jquery (在bower组件库注册) bower install jquery/jquery (GitHub上的短语名) bower install http://example.com/script.js (通过URL安装) bower install git://github.com/user/pac

理解 iOS 的内存管理

理解 iOS 的内存管理 远古时代的故事 那些经历过手工管理内存(MRC)时代的人们,一定对 iOS 开发中的内存管理记忆犹新.那个时候大约是 2010 年,国内 iOS 开发刚刚兴起,tinyfool 大叔的大名已经如雷贯耳,而我还是一个默默无闻的刚毕业的小子.那个时候的 iOS 开发过程是这样的: 我们先写好一段 iOS 的代码,然后屏住呼吸,开始运行它,不出所料,它崩溃了.在 MRC 时代,即使是最牛逼的 iOS 开发者,也不能保证一次性就写出完美的内存管理代码.于是,我们开始一步一步调试

深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)

相关文章: 深入理解net core中的依赖注入.Singleton.Scoped.Transient(一) 深入理解net core中的依赖注入.Singleton.Scoped.Transient(二) 深入理解net core中的依赖注入.Singleton.Scoped.Transient(三) 一.什么是依赖注入(Denpendency Injection) 这也是个老身常谈的问题,到底依赖注入是什么? 为什么要用它? 初学者特别容易对控制反转IOC(Iversion of Contr

如何使用CocoaPods安装使用及配置私有库以及管理依赖库 【原创】

CocoaPods是什么 在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest.AFNetworking.JSONKit等.使用这些第三方类库能极大的方便项目的开发,但是,集成这些依赖库需要我们手动去配置,例如集成ASIHttpRequest库时除了加入源码以外还需要手动去添加一些系统框架,比如CFNetwork.MobileCoreServices等,如果这些第三方库发生了更新,还需要手动去更新项目.这就显得非常麻烦.有麻烦自然有解决办法,CocoaPods就

SSM实战——秒杀系统之创建项目、管理依赖、设计数据库

注:本项目使用Myeclipse开发. 一:项目创建 1:使用Myeclipse创建一个web project,命名为MySeckill,并转换为Maven项目. 2:创建项目文件目录如下: 上面四个包分别管理:源代码.源代码资源(配置文件).测试代码.测试代码资源(配置文件) 3:在pom.xml添加SSM框架所需依赖包: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.

我理解的windows中断管理

只谈外部中断的windows内核管理,异常和trap不在此文的讨论之列. 1. windows中断总貌 在windows中,物理上的中断源被抽象为KINTERRUPT结构.一个中断源在windows中对应一个KINTERRUPT数组,数组的长度为CPU的个数,如果是单核系统,那么这个数组长度为1.先分析KINTERRUPT结果. windows存储了IDT(Interrupt Descriptor Table),这张表是一个数组结构,数组的下标是Vector号(此Vector不是PIC/APIC

使用CocoaPods管理依赖库

这篇内容将介绍Mac和iOS开发中必备的一个依赖库管理工具CocoaPods. 在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest.AFNetworking.JSONKit等.使用这些第三方类库能极大的方便项目的开发,但是,集成这些依赖库需要我们手动去配置,例如集成ASIHttpRequest库时除了加入源码以外还需要手动去添加一些系统的framework,CFNetwork.MobileCoreServices等,如果这些第三方库发生了更新,还需要手动去更新

使用maven构建项目和管理依赖

maven现在已经用的很多了,以前总不明白为什么要使用maven,也是最近才明白了它的好处,使用maven可以很大程度上解决像jar包冲突.项目的移植性不好的问题,相比ant功能要强大很多,这次我打算分享一下我使用maven的心得 一  使用maven构建web项目 1  一般情况下新版的Eclipse都安装了maven插件,直接使用就行,如果没有可以先安装maven插件 2 开始创建maven项目 之后点下一步,出现下面的界面,一般情况只需要使用默认设置就OK了 2 选择maven项目的类型,