这书特别适合前端开发搭建的新手新手入门,所详细介绍的Gulp、Bower、Yeoman全是业界时兴且便于入门的专用工具。而这书的目地并不仅是详细介绍专用工具的使用方法,还对前端开发搭建总体的定义和构思开展了整理。即便将来出現了更优秀、更时尚潮流的专用工具,整体的构思仍然以不变应万变,这书也不容易因而而落伍。
Stefan Baumgartner是一个填满热情的网页页面开发人员和演说家,他在自身的故乡机构了技术性大会。他的科学研究行业包含互联网特性、自动化技术、系统架构和渐近提高。
目录
- 译者序
- 自 序
- 前 言
- 致 谢
- 关于原书封面插图
- 第一部分 现代Web应用工作流
- 第1章现代前端工作流的工具链 3
- 1.1软件开发者的工作流和任务清单 4
- 1.1.1 初始化阶段的任务 6
- 1.1.2 开发阶段的任务 6
- 1.1.3 部署阶段的任务 7
- 1.1.4 人为因素 8
- 1.2 JavaScript工具和新的工作流 9
- 1.2.1 三类代码及其工具 10
- 1.2.2Node.js中的JavaScript工具 12
- 1.3 用Yeoman搭建脚手架 13
- 1.3.1Yeoman作为脚手架工具的优点 14
- 1.3.2 什么是generator 14
- 1.4 依赖管理工具Bower 15
- 1.4.1 Bower的优点 16
- 1.4.2 Bower的依赖树 17
- 1.5 Gulp流式构建系统 18
- 1.5.1 Gulp的优点 18
- 1.5.2 构建管道 19
- 1.6 总结 21
- 第2章 Gulp入门 22
- 2.1 配置Gulp 23
- 2.1.1 Gulp的构建块 23
- 2.1.2 Gulp命令行接口 25
- 2.1.3 安装本地Gulp 26
- 2.2 创建Gulpf?ile 28
- 2.2.1Gulp的“Hello World”task 28
- 2.2.2 流的使用 31
- 2.2.3Gulp中的可读流和可写流 32
- 2.3 使用Gulp插件处理task 34
- 2.3.1 转换数据 34
- 2.3.2 改变文件结构 35
- 2.3.3 链式调用插件 37
- 2.4 总结 39
- 第3章用Gulp配置本地开发环境 41
- 3.1 本地开发环境 42
- 3.1.1 给task分类 43
- 3.1.2 重置步骤:clean task 43
- 3.1.3 构建和迭代 45
- 3.2 初次构建步骤 45
- 3.2.1 依赖链和执行链 46
- 3.2.2 顺序和并行执行task 47
- 3.2.3 依赖链的task执行函数 48
- 3.2.4 更新Gulpfile 49
- 3.3 迭代步骤 52
- 3.3.1 监控过程 52
- 3.3.2使用Browsersync建立按需实时重载的服务器 53
- 3.3.3 更新Gulpfile 55
- 3.4 总结 57
- 第4章 Bower依赖管理 59
- 4.1 依赖管理基础 61
- 4.1.1 组件和依赖 61
- 4.1.2 依赖树 62
- 4.2 Bower的扁平依赖树管理 64
- 4.2.1 安装和更新组件 65
- 4.2.2 安装有依赖的组件 66
- 4.2.3 解决依赖冲突 68
- 4.3 集成Gulp 69
- 4.3.1用Gulp把依赖集成到应用中 70
- 4.3.2将依赖集成到Gulp构建流程中 72
- 4.4 总结 74
- 第5章 脚手架工具Yeoman 75
- 5.1 Yeoman generator 76
- 5.1.1 generator的构成 78
- 5.1.2 调用generator 79
- 5.2 项目模板 81
- 5.2.1 固定文件 81
- 5.2.2 灵活文件 83
- 5.2.3 可选文件 83
- 5.2.4 可恢复文件 84
- 5.3 Yeoman的组装流程 84
- 5.3.1 安装提示 85
- 5.3.2 写入文件 87
- 5.3.3 安装依赖 89
- 5.4 创建一个generator 89
- 5.4.1 准备项目模板 90
- 5.4.2 创建组装指令 92
- 5.4.3 构建和测试 93
- 5.5 总结 94
- 第二部分 工具链的集成和扩展
- 第6章 不同环境下的Gulp 97
- 6.1 增量构建和构建缓存 99
- 6.1.1 Gulp内置功能 99
- 6.1.2 安装构建缓存 101
- 6.1.3 处理被删除的文件 104
- 6.2通过sourcemap来调试源文件 105
- 6.2.1 什么是sourcemap 107
- 6.2.2 Gulp内置的sourcemap 108
- 6.2.3 sourcemap插件 109
- 6.3 切换环境 111
- 6.3.1 noop() 111
- 6.3.2 dev()和prod()选择函数 113
- 6.3.3 传递命令行参数 115
- 6.4 总结 116
- 第7章 使用流 117
- 7.1 处理不同类型的输入 119
- 7.1.1 穿插流 119
- 7.1.2 合并流 121
- 7.2 处理不同的输出 123
- 7.2.1在task中根据参数创建流 123
- 7.2.2 流数组 126
- 7.3 其他关于流的使用技巧 128
- 7.3.1使用snippet来避免重复代码 129
- 7.3.2 使用流队列来管理顺序 130
- 7.3.3通过Gulp f?ilter来修改流的内容 131
- 7.4 总结 133
- 第8章 扩展Gulp 134
- 8.1 Gulp插件黑名单 135
- 8.1.1理由:不是一个Gulp插件 136
- 8.1.2理由:可以用别的东西替代 137
- 8.1.3 理由:做的事情太多 138
- 8.2 集成其他基于流的工具 139
- 8.2.1流、缓冲和Vinyl文件对象 139
- 8.2.2 集成Browserify 142
- 8.2.3 转换内容 145
- 8.3 集成基于Promise的工具 146
- 8.3.1 Promise的用法 147
- 8.3.2在Gulp task系统中使用Promise 149
- 8.4 总结 151
- 第9章 创建模块和Bower组件 153
- 9.1 异步模块规范 155
- 9.1.1AMD——为浏览器设计的模块定义规范 155
- 9.1.2 重构到AMD 158
- 9.2CommonJS和通用模块规范 160
- 9.2.1 CommonJS模块 160
- 9.2.2 通用模块规范 161
- 9.3 定义和部署Bower组件 163
- 9.3.1 Bower.json说明 164
- 9.3.2 部署和发布组件 166
- 9.3.3 私有项目仓库和组件 167
- 9.4 总结 169
- 第10章Yeoman generator进阶 171
- 10.1 向现有项目中添加新文件 172
- 10.1.1 sub-generator的概念 172
- 10.1.2sub-generator的组装指令 174
- 10.2 改进接口 176
- 10.2.1 修改现有的文件 177
- 10.2.2 处理用户的配置 178
- 10.3 组合generator 181
- 10.3.1全局的generator的组合 181
- 10.3.2依赖和generator的组合 184
- 10.4 总结 186
- 附录A Node.js导论 187