第1章 Bower 1
1.1 準備工作 1
1.2 配置Bower 2
1.3 清單文件(Manifest) 2
創建新的清單文件 3
1.4 查找、添加和刪除Bower包 3
1.4.1 查找包 3
1.4.2 添加包 3
1.4.3 刪除包 5
1.5 語義化版本控製 5
1.6 維護依賴鏈 6
1.7 創建Bower包 7
1.7.1 選擇有效的包名 7
1.7.2 使用語義化版本(Semver)的
Git標簽 7
1.7.3 將軟件包發布到注冊中心 7
1.8 小結 8
第2章 Grunt 9
2.1 安裝Grunt 10
2.2 Grunt是如何工作的 10
2.2.1 Gruntfile.js 10
2.2.2 任務(Tasks) 11
2.2.3 插件(Plugins) 11
2.2.4 配置 12
2.3 將Grunt添加到項目中 12
保持閤理的Grunt結構 12
2.4 與任務共舞 14
2.4.1 配置管理 14
2.4.2 任務描述 15
2.4.3 異步任務 15
2.4.4 任務依賴 16
2.4.5 多任務 16
2.4.6 多任務中的Options 17
2.7 模闆配置 18
2.4.8 命令行選項 19
2.4.9 提供反饋 19
2.4.10 錯誤處理 20
2.5 操作文件係統 20
2.5.1 源-目標映射 20
2.5.2 監視文件變化 22
2.6 創建Grunt插件 25
2.6.1 開始 25
2.6.2 創建任務 26
2.6.3 將任務發布到npm 28
2.7 總結 28
2.8 相關資源 29
第3章 Yeoman 30
3.1 安裝Yeoman 30
3.2 創建第一個項目 30
3.2.1 子命令 33
3.3 創建你的第一個腳手架 34
3.3.1 Yeoman腳手架是一個Node
模塊 34
3.3.2 子腳手架 35
3.3.3 定義二級命令 39
3.3.4 可組閤性 41
3.4 小結 41
3.5 相關資源 42
第4章 PM2 43
4.1 安裝 43
4.2 與進程一起工作 43
4.2.1 從錯誤中恢復 46
4.2.2 監控文件變化 47
4.3 監控日誌 48
4.4 監控資源占用 49
4.41 監控本地資源 49
4.4.2 監控遠程資源 49
4.5 進程的高級管理 52
4.5.1 通過JSON方式配置應用 52
4.6 多核處理器的負載均衡 55
4.6.1 0秒宕機的部署方式 57
4.7 小結 59
4.8 相關資源 59
第5章 RequireJS 60
5.1 運行示例 61
5.2 使用RequireJS 61
5.2.1 安裝 62
5.2.2 配置 62
5.2.3 應用模塊和依賴 64
5.2.4 路徑和彆名 66
5.2.5 Shims 69
5.2.6 加載器插件 73
5.2.7 緩存清除 78
5.3 RequireJS優化 80
5.3.1 配置 r.js 80
5.3.2 運行r.js命令 81
5.4 小結 82
第6章 Browserify 84
6.1 AMD API與CommonJS對比 84
6.2 安裝Browserify 85
6.3 創建你的第一個Bundle 85
6.4 可視化依賴樹 87
6.5 發生變化時重新打包文件 88
6.5.1 通過Grunt監聽文件變化 88
6.5.2 通過Watchify監聽文件
變化 88
6.6 使用多個打包文件 90
6.7 Node方式 92
6.7.1 模塊解析方案和NODE_PATH
環境變量 93
6.7.2 依賴管理 95
6.8 定義瀏覽器指定模塊 96
6.9 用Transforms擴展Browserify 97
6.9.1 brfs 97
6.9.2 folderify 98
6.9.3 bulkify 98
6.9.4 Browserify-Shim 99
6.10 小結 100
6.11 相關資源 100
第7章 Knockout 101
7.1 View、Model與View Model 102
7.1.1 菜譜列錶 103
7.1.2 菜譜詳情 106
7.2 綁定視圖模型到DOM 108
7.3 視圖模型與錶單 109
7.3.1 切換到“編輯”模式 109
7.3.2 更改菜譜的標題 112
7.3.3 更改菜譜的Serving與
Cooking Time 112
7.3.4 添加與刪除食材 114
7.3.5 操作步驟 118
7.3.6 引文 119
7.4 自定義組件 120
7.4.1 input-list組件的視圖模型 120
7.4.2 input-list模闆 121
7.4.3 注冊input-list組件 123
7.5 Subscribable: 簡單的消息傳遞 124
7.6 小結 126
7.7 相關資源 127
第8章 AngularJS 128
8.1 聲明式Web編程 128
8.1.1 命令式編程 128
8.1.2 聲明式編程 129
8.2 Module:創建鬆散耦閤程序的基石 130
8.3 指令:DOM的抽象 132
8.4 加入邏輯 134
8.4.1 Scope與原型繼承 134
8.4.2 用Controller操作Scope 135
8.5 通過Service與依賴注入(DI)
實現鬆散耦閤 138
8.5.1 依賴注入 138
8.5.2 簡單的Controller與復雜的
Service 139
8.6 創建路由 142
8.6.1 路由參數 143
8.6.2 路由的Resolve 144
8.7 創建復雜錶單 145
8.7.1 錶單驗證 146
8.7.2 條件邏輯 150
8.7.3 列錶 151
8.8 小結 153
8.9 相關資源 154
第9章 Kraken 155
9.1 環境感知的配置 156
9.2 注冊基於配置的中間件 162
9.3 結構化路由注冊 165
9.3.1 索引配置 165
9.3.2 目錄配置 166
9.3.3 路由配置 167
9.4 Dust模闆 169
9.4.1 上下文及引用 169
9.4.2 片段 171
9.4.3 迭代 172
9.4.4 條件句 173
9.4.5 局部模闆 173
9.4.6 塊 174
9.4.7 過濾器 175
9.4.8 上下文輔助器 176
9.4.9 Dust輔助器 182
9.4.10 使用Kraken 186
9.5 小結 200
9.6 相關資源 200
第10章 Mach 202
10.1 章節例子 202
10.2 安裝 203
10.3 Mach - Web服務 203
10.3.1 HTTP路由 205
10.3.2 建立連接 210
10.3.3 公共的中間件 212
10.3.4 路由重寫 226
10.3.5 主機映射 228
10.3.6 自定義中間件 232
10.4 Mach-HTTP客戶端 234
10.5 Mach - HTTP代理 236
10.6 小結 239
第11章 Mongoose> 240
11.1 MongoDB的基本概念 240
11.2 Mongoose的一個簡單示例 243
11.2.1 針對JSON數據創建一個
Mongoose模式 243
11.2.2 使用Mongoose導入數據 244
11.2.3 通過Mongoose查詢數據 247
11.3 使用結構(Schemas) 248
11.3.1 數據類型 248
11.3.2 嵌套結構 250
11.3.3 默認屬性值 250
11.3.4 必要屬性 251
11.3.5 輔助索引 251
11.3.6 結構校驗 252
11.3.7 結構引用 255
11.3.8 結構中間件 258
11.4 使用模型和文檔 259
11.4.1 文檔實例方法 262
11.4.2 文檔虛擬 263
11.4.3 靜態模型方法 265
11.5 使用查詢 266
11.5.1 Model.find() 266
11.5.2 使用查詢運算符查找文檔 272
11.6 小結 278
第12章 Knex和Bookshelf 279
12.1 Knex 279
12.1.1 安裝命令行工具 280
12.1.2 把Knex添加到你的項目 280
12.1.3 配置Knex 280
12.1.4 SQL查詢構建器 281
12.1.5 遷移腳本 287
12.1.6 種子腳本 291
12.2 Bookshelf 291
12.2.1 什麼是對象映射關係? 292
12.2.2 創建Bookshelf模型 292
12.2.3 關係 299
12.3 小結 306
12.4 相關資源 307
第13章 Faye 308
13.1 HTTP、Bayeux和WebSocket 308
13.1.1 WebSocket 310
13.1.2 Bayeux協議 310
13.2 開始使用Faye 312
13.3 發布/訂閱消息係統 313
13.4 小結 318
13.5 相關資源 318
第14章 Q 319
14.1 時間就是一切 319
14.2 Promise對比迴調函數 322
14.3 Q的Promise 324
14.3.1 Deferreds 和 Promises 324
14.3.2 值和錯誤 328
14.3.3 報告進度 333
14.3.4 終點 336
14.4 控製流 338
14.4.1 順序流 338
14.4.2 平行流 339
14.4.3 管道流 341
14.5 小結 342
14.6 相關資源 343
第15章 Async.js 344
15.1 順序流 345
15.2 並行流 346
15.3 管綫流 348
15.4 循環流 352
15.4.1 為真則循環執行 352
15.4.2 為假則循環執行 354
15.4.3 循環重試 355
15.4.4 無限循環 357
15.5 批處理流 358
15.5.1 異步隊列 358
15.5.2 異步負載 359
15.6 小結 361
第16章 Underscore和Lodash 362
16.1 安裝及用法 363
16.2 聚閤和索引 364
16.2.1 countBy() 364
16.2.2 groupBy() 365
16.2.3 indexBy() 366
16.3 選擇 367
16.3.1 從集閤中選擇數據 367
16.3.2 從對象中選擇數據 369
16.4 鏈式調用 373
16.5 函數計時 375
16.5.1 defer() 375
16.5.2 debounce() 377
16.5.3 throttle() 378
16.6 模闆 380
16.6.1 模闆內的循環及其他
JavaScript代碼 381
16.6.2 書寫不加鰐魚標記的代碼 382
16.6.3 從模闆中獲取數據對象 383
16.6.4 默認模闆數據 384
16.7 小結 385
16.8 相關資源 386
· · · · · · (
收起)
評分
☆☆☆☆☆
JavaScript Frameworks for Modern Web Devis your guide to the wild, vast, and untamed frontier that is JavaScript development. The JavaScript tooling landscape has grown and matured drastically in the past several years. This book will serve as an introducti...
評分
☆☆☆☆☆
JavaScript Frameworks for Modern Web Devis your guide to the wild, vast, and untamed frontier that is JavaScript development. The JavaScript tooling landscape has grown and matured drastically in the past several years. This book will serve as an introducti...
評分
☆☆☆☆☆
JavaScript Frameworks for Modern Web Devis your guide to the wild, vast, and untamed frontier that is JavaScript development. The JavaScript tooling landscape has grown and matured drastically in the past several years. This book will serve as an introducti...
評分
☆☆☆☆☆
JavaScript Frameworks for Modern Web Devis your guide to the wild, vast, and untamed frontier that is JavaScript development. The JavaScript tooling landscape has grown and matured drastically in the past several years. This book will serve as an introducti...
評分
☆☆☆☆☆
JavaScript Frameworks for Modern Web Devis your guide to the wild, vast, and untamed frontier that is JavaScript development. The JavaScript tooling landscape has grown and matured drastically in the past several years. This book will serve as an introducti...