《JavaScript开发框架权威指南》——第1章 Bower 1.1准备工作

第1章 Bower

九层之台,起于累土。

—— 文森特·梵高

包管理(Package Management),又作依赖关系管理(Dependency Management),并不是什么新奇的概念。此类工具为开发者提供了一种机制,以管理软件项目所依赖的各种第三方库。一些得到广泛应用的例子有:

  • npm:Node.js的包管理工具;
  • Composer:一种PHP依赖关系管理工具;
  • pip:PyPA的推荐工具,用于安装Python包;
  • NuGet:包括.NET在内的微软开发平台的包管理工具。

尽管包管理并不是新概念,但是将其广泛应用于前端资源的管理却是最近才有的事情。这些资源包括JavaScript库、样式表、字体、图标(icon)以及图像等,它们是现代网络应用的基本构件。随着现代网络应用的构建基础越来越复杂,对包管理工具的需求日益凸显。那些曾经以某些万金油式的第三方库(如jQuery)为基础开发出的网络应用,也开始逐渐转向一些功能专一且体积小巧的库。这样做使得软件模块更加小巧,从而易于测试,同时应用的灵活性也得到了加强,可以方便地通过第三方库进行扩展,并在必要的时候进行替换。

1.1 准备工作

用户与Bower之间的所有交互都通过命令行工具来完成,该工具可以通过npm安装。如果你还没有安装Bower,那么请在继续阅读之前,按照清单进行安装。

清单1-1 通过npm安装Bower命令行工具

$ npm install -g bower
$ bower --version
1.3.12

注意:
 

Node的包管理工具(npm)允许用户将软件包安装到局部或全局两个环境之一。在本例中,我们将Bower安装到了全局环境。通常,全局环境用于安装各种命令行工具。

时间: 2024-10-07 21:10:47

《JavaScript开发框架权威指南》——第1章 Bower 1.1准备工作的相关文章

《JavaScript开发框架权威指南》——第2章 Grunt 2.1安装Grunt

第2章 Grunt 我是一个懒人.但正是懒人发明了轮子和自行车,因为他们既不愿意走路,也不愿意负重前行. --莱赫·瓦文萨,波兰前总统 拉里·沃尔(Larry Wall,著名的Perl语言创始人)在他的<Programming Perl>一书中提到,所有成功的程序员都有三个重要的品质:懒惰.急躁以及狂妄.乍一看,这些都是相当糟糕的品质,但是只是深挖一下,你就会发现其言外之意. 懒惰:懒惰的程序员讨厌重复自己.他们通常会花费大量的时间去创造有用的工具,代替自己完成重复性的工作.他们往往还会为这些

《JavaScript开发框架权威指南》——1.7 创建Bower包

1.7 创建Bower包 截至目前,我们关注的焦点都在如何将Bower集成到项目中.我们先在项目中对Bower进行了初始化,然后探究了查找.添加以及移除软件包的方法.但是总有那么一天,你会希望将自己的软件包分享给其他人.要这么做的话,就必须遵守一些简单的规则,让我们从选择有效的包名开始. 1.7.1 选择有效的包名你需要为自己的包选定一个名字,该名字必须在整个Bower开放注册中心(public registry)唯一.通过Bower的search命令来检查你想要的名字是否可用.其他需要遵守的规

《JavaScript开发框架权威指南》——1.2 配置Bower

1.2 配置Bower Bower采用基于项目的配置,也就是说,每个项目都可以通过一个(可选的)JSON文件进行配置.该文件位于项目的根目录下,文件名为.bowerrc.简要起见,我们只看一下该文件中变动最频繁的设置(见清单). 清单1-2 本章示例项目中的.bowerrc文件 // example-bootstrap/.bowerrc { "directory": "./public/bower_components" } 默认情况下,Bower会把项目的所有依赖

《JavaScript开发框架权威指南》——2.5 操作文件系统

2.5 操作文件系统 可想而知,作为构建工具,大部分Grunt插件都要以某种方式和文件系统交互.鉴于操作文件的重要性,Grunt提供了有益的抽象允许开发者与文件系统交互,并且仅仅使用很少数量的样板代码. 当然,我们不会把所有方法都列举在此,表显示了Grunt文件操作API中一些使用频率最高的方法.2.5.1 源-目标映射 许多Grunt任务与文件系统交互是依赖于源-目标映射的,该映射描述了要被处理的文件及各文件对应的目标.构建这样的映射会很冗长乏味,感谢Grunt为我们提供了解决此问题的有益捷径

《JavaScript开发框架权威指南》——2.2 Grunt是如何工作的

2.2 Grunt是如何工作的 Grunt为开发者提供了一个工具包,用于创建命令行程序来执行项目构建过程中的重复性任务,如压缩JavaScript代码.编译Sass样式表等.不过,Grunt的能力并不限于创建简单的任务(通常这些任务不会被分享或者复用),以解决特定工程遇到的特定需求,其真正的力量源于其将任务打包为可复用的插件的能力.这些插件可以被发布.分享.使用以及由其他人进行改进.本书写作之时已经有超过4 400个这样的插件. Grunt的运转依赖于四个核心组件,接下来逐一论述. 2.2.1

《JavaScript开发框架权威指南》——1.6 维护依赖链

1.6 维护依赖链 Bower给开发者带来的一个主要好处,就是可以非常方便地对整个项目的依赖链以一种相对受控的方式进行集中升级.为此,我们先来看一下本章示例项目所包含的依赖项列表(见清单). 清单1-8 安装并列出示例项目所需的Bower包 $ bower install bower bootstrap#3.2.0 cached git://github.com/twbs/bootstrap.git#3.2.0 bower bootstrap#3.2.0 validate 3.2.0 again

《JavaScript开发框架权威指南》——1.5 语义化版本控制

1.5 语义化版本控制 如果安装了jQuery(见清单),那么请查看项目的Bower清单.你所看到的应当与清单相仿. 清单1-7 语义化版本号 "dependencies": { "jquery": "~2.1.3" } 清单中的版本号2.1.3(请暂时忽略-)就是所谓的语义化版本号(Semver,Semantic Version).语义化版本控制能够帮助开发者按照通用格式为其项目指定版本号.该格式如下所示. Version X.Y.Z(Majo

《JavaScript开发框架权威指南》——1.3 清单文件(Manifest)

1.3 清单文件(Manifest) Bower为开发者查找.添加.升级以及删除第三方库提供了唯一入口.这些操作被执行后,Bower会用最新的项目依赖项列表更新一个被称作"配置清单"的JSON文件.本章示例项目中的配置清单如清单所示.在此示例项目中,Bower维护着一个唯一的依赖项,即Bootstrap的CSS框架. 清单1-3 本章示例项目的Bower清单文件 // example-bootstrap/bower.json { "name": "exam

《JavaScript开发框架权威指南》——2.4 处理任务

2.4 处理任务 对于配置来说,Grunt的config()方法既是"getter",也是"setter".在清单中,我们可以看到一个基本的Grunt任务是如何通过此方法来存取配置的. 清单2-9 管理一个基本Grunt任务的配置 module.exports = function(grunt) { grunt.config('basic-task', { 'message': 'Hello, world.' }); grunt.registerTask('basi