譯者序
自 序
前 言
緻 謝
關於原書封麵插圖
第一部分 現代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.2 Node.js中的JavaScript工具 12
1.3 用Yeoman搭建腳手架 13
1.3.1 Yeoman作為腳手架工具的優點 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 創建Gulpfile 28
2.2.1 Gulp的“Hello World”task 28
2.2.2 流的使用 31
2.2.3 Gulp中的可讀流和可寫流 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 filter來修改流的內容 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.1 AMD——為瀏覽器設計的模塊定義規範 155
9.1.2 重構到AMD 158
9.2 CommonJS和通用模塊規範 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.2 sub-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
· · · · · · (
收起)