深入淺齣Webpack 其他 – 2018年1月1日
吳浩麟 (作者)
定價 79元
齣版社: 電子工業齣版社; 第1版 (2018年1月1日)
其他: 288頁
ISBN: 9787121331725
條形碼: 9787121331725
ASIN: B077Z81HRY
隨著Web開發技術的發展,Webpack憑藉其便於使用和涵蓋麵廣的優勢,成為目前非常流行的前端構建工具,是每位前端工程師的必備技能之一。本書對Webpack進行瞭全麵講解,涵蓋瞭Webpack入門、配置、實戰、優化、原理等方麵的內容。其中,第1章講解Webpack入門所涉及的知識;第2章詳細講解Webpack提供的常用配置項;第3章結閤實際項目中的常見場景進行實踐;第4章給齣優化Webpack的**方案;第5章剖析瞭Webpack的原理,並講解如何開發Plugin和Loader;附錄匯總瞭常見的Loader、Plugin和Webpack的其他學習資源。除瞭深入講解Webpack,本書還介紹瞭ES6、TypeScript、PostCSS、Prepack、離綫緩存、單頁應用、CDN等Web開發相關的技能。無論是對 Webpack一無所知的初學者,還是經驗豐富的前端工程師,相信都能夠通過本書進一步提升對Webpack的理解,並在Web開發中更熟練地運用Webpack。
商品描述
作者簡介
吳浩麟一綫前端工程師,曾就職於騰訊,現就職於美團。專注於Web開發,參與過眾多大型Web項目的構建、設計和開發,喜歡探索Web前沿技術。也是Golang和音視頻技術的愛好者,活躍於GitHub,ID為gwuhaolin。
目錄
第1章 入門 1
1.1 前端的發展 2
1.1.1 模塊化 2
1.1.2 新框架 5
1.1.3 新語言 6
1.2 常見的構建工具及對比 8
1.2.1 Npm Script 9
1.2.2 Grunt 10
1.2.3 Gulp 11
1.2.4 Fis3 12
1.2.5 Webpack 14
1.2.6 Rollup 15
1.2.7 為什麼選擇 Webpack 16
1.3 安裝Webpack 16
1.3.1 安裝Webpack到本項目 17
1.3.2 安裝Webpack到全局 17
1.3.3 使用Webpack 18
1.4 使用Loader 20
1.5 使用Plugin 22
1.6 使用DevServer 24
1.6.1 實時預覽 25
1.6.2 模塊熱替換 25
1.6.3 支持Source Map 26
1.7 核心概念 27
第2章 配置 28
2.1 Entry 29
2.1.1 context 29
2.1.2 Entry類型 30
2.1.3 Chunk名稱 30
2.1.4 配置動態Entry 31
2.2 Output 31
2.2.1 filename 31
2.2.2 chunkFilename 32
2.2.3 path 33
2.2.4 publicPath 33
2.2.5 crossOriginLoading 33
2.2.6 libraryTarget 和 library 34
2.2.7 libraryExport 36
2.3 Module 37
2.3.1 配置Loader 37
2.3.2 noParse 39
2.3.3 parser 40
2.4 Resolve 41
2.4.1 alias 41
2.4.2 mainFields 42
2.4.3 extensions 42
2.4.4 modules 43
2.4.5 descriptionFiles 43
2.4.6 enforceExtension 43
2.4.7 enforceModuleExtension 44
2.5 Plugin 44
2.6 devServer 45
2.6.1 hot 45
2.6.2 inline 45
2.6.3 historyApiFallback 46
2.6.4 contentBase 47
2.6.5 headers 47
2.6.6 host 48
2.6.7 port 48
2.6.8 allowedHosts 48
2.6.9 disableHostCheck 49
2.6.10 https 49
2.6.11 clientLogLevel 49
2.6.12 compress 50
2.6.13 open 50
2.7 其他配置項 50
2.7.1 Target 50
2.7.2 Devtool 51
2.7.3 Watch 和 WatchOptions 51
2.7.4 Externals 52
2.7.5 ResolveLoader 53
2.8 整體配置結構 54
2.9 多種配置類型 58
2.9.1 導齣一個Function 58
2.9.2 導齣一個返迴Promise的函數 60
2.9.3 導齣多份配置 60
2.10 總結 61
第3章 實戰 62
3.1 使用ES6語言 62
3.1.1 認識Babel 63
3.1.2 接入Babel 67
3.2 使用TypeScript語言 67
3.2.1 認識TypeScript 67
3.2.2 減少代碼冗餘 69
3.2.3 集成Webpack 69
3.3 使用Flow檢查器 70
3.3.1 認識Flow 70
3.3.2 使用Flow 71
3.3.3 集成Webpack 72
3.4 使用SCSS語言 73
3.4.1 認識SCSS 73
3.4.2 接入Webpack 74
3.5 使用PostCSS 75
3.5.1 認識PostCSS 75
3.5.2 接入Webpack 77
3.6 使用React框架 78
3.6.1 React的語法特徵 78
3.6.2 React與Babel 78
3.6.3 React與TypeScript 79
3.7 使用Vue框架 81
3.7.1 認識Vue 81
3.7.2 接入Webpack 83
3.7.3 使用TypeScript編寫Vue應用 84
3.8 使用Angular2框架 86
3.8.1 認識Angular2 86
3.8.2 接入Webpack 89
3.9 為單頁應用生成HTML 90
3.9.1 引入問題 90
3.9.2 解決方案 92
3.10 管理多個單頁應用 95
3.10.1 引入問題 95
3.10.2 解決方案 98
3.11 構建同構應用 101
3.11.1 認識同構應用 101
3.11.2 解決方案 103
3.12 構建Electron應用 107
3.12.1 認識Electron 107
3.12.2 接入Webpack 110
3.13 構建Npm模塊 113
3.13.1 認識Npm 113
3.13.2 拋齣問題 113
3.13.3 使用Webpack構建Npm模塊 115
3.13.4 發布到Npm 119
3.14 構建離綫應用 120
3.14.1 認識離綫應用 120
3.14.2 認識Service Workers 121
3.14.3 接入Webpack 126
3.14.4 驗證結果 129
3.15 搭配Npm Script 130
3.15.1 認識Npm Script 130
3.15.2 Webpack為什麼需要Npm Script 131
3.16 檢查代碼 132
3.16.1 代碼檢查具體是做什麼的 133
3.16.2 怎麼做代碼檢查 133
3.16.3 結閤Webpack檢查代碼 136
3.17 通過Node.js API啓動Webpack 138
3.17.1 安裝和使用Webpack模塊 139
3.17.2 以監聽模式運行 139
3.18 使用Webpack Dev Middleware 140
3.18.1 Webpack Dev Middleware支持的配置項 141
3.18.2 Webpack Dev Middleware與模塊熱替換 143
3.19 加載圖片 145
3.19.1 使用file-loader 145
3.19.2 使用url-loader 146
3.20 加載SVG 148
3.20.1 使用raw-loader 149
3.20.2 使用svg-inline-loader 150
3.21 加載Source Map 151
3.21.1 該如何選擇 152
3.21.2 加載現有的Source Map 153
3.22 實戰總結 154
第4章 優化 156
4.1 縮小文件的搜索範圍 157
4.1.1 優化loader配置 157
4.1.2 優化resolve.modules配置 158
4.1.3 優化resolve.mainFields配置 159
4.1.4 優化resolve.alias配置 160
4.1.5 優化resolve.extensions配置 162
4.1.6 優化module.noParse配置 162
4.2 使用DllPlugin 163
4.2.1 認識DLL 163
4.2.2 接入Webpack 164
4.3 使用HappyPack 170
4.3.1 使用HappyPack 170
4.3.2 HappyPack的原理 173
4.4 使用ParallelUglifyPlugin 173
4.5 使用自動刷新 176
4.5.1 文件監聽 176
4.5.2 自動刷新瀏覽器 179
4.6 開啓模塊熱替換 183
4.6.1 模塊熱替換的原理 183
4.6.2 優化模塊熱替換 188
4.7 區分環境 189
4.7.1 為什麼需要區分環境 189
4.7.2 如何區分環境 190
4.7.3 結閤UglifyJS 192
4.7.4 第三方庫中的環境區分 192
4.8 壓縮代碼 193
4.8.1 壓縮 193
4.8.2 壓縮ES6 195
4.8.3 壓縮 CSS 197
4.9 CDN加速 198
4.9.1 什麼是CDN 198
4.9.2 接入CDN 199
4.9.3 用Webpack實現CDN的接入 202
4.10 使用Tree Shaking 204
4.10.1 認識Tree Shaking 204
4.10.2 接入Tree Shaking 205
4.11 提取公共代碼 208
4.11.1 為什麼需要提取公共代碼 208
4.11.2 如何提取公共代碼 208
4.11.3 如何通過Webpack提取公共代碼 210
4.12 分割代碼以按需加載 213
4.12.1 為什麼需要按需加載 213
4.12.2 如何使用按需加載 213
4.12.3 用Webpack實現按需加載 214
4.12.4 按需加載與ReactRouter 216
4.13 使用Prepack 218
4.13.1 認識Prepack 218
4.13.2 接入Webpack 220
4.14 開啓Scope Hoisting 220
4.14.1 認識Scope Hoisting 221
4.14.2 使用Scope Hoisting 222
4.15 輸齣分析 223
4.15.1 官方的可視化分析工具 224
4.15.2 webpack-bundle-analyzer 228
4.16 優化總結 229
第5章 原理 236
5.1 工作原理概括 236
5.1.1 基本概念 237
5.1.2 流程概括 237
5.1.3 流程細節 238
5.2 輸齣文件分析 241
5.3 編寫Loader 248
5.3.1 Loader的職責 249
5.3.2 Loader基礎 249
5.3.3 Loader進階 250
5.3.4 其他Loader API 253
5.3.5 加載本地Loader 254
5.3.6 實戰 256
5.4 編寫Plugin 257
5.4.1 Compiler和Compilation 258
5.4.2 事件流 258
5.4.3 常用的API 260
5.4.4 實戰 263
5.5 調試Webpack 265
5.6 原理總結 268
附錄A 常用的Loader 268
附錄B 常用的Plugin 271
附錄C 其他Webpack學習資源 273
…………………………
前端工程化:體係設計與實踐
周俊鵬 (作者) 付睿 (責任編輯)
書 號:978-7-121-33090-2
齣版日期:2018-01-01
頁 數:224
開 本:16(185*235)
齣版狀態:上市銷售
維護人:付睿
前端工程化包含一係列規範和流程,其可提升前端工程師的工作效率,加快Web開發迭代速度,是現在前端開發領域中非常重要的一環。本書係統、全麵地介紹瞭前端工程體係的各個環節,包括設計要點和實踐經驗。全書分為7章,分彆包括緒論、腳手架、構建、本地開發服務器、部署、工作流、前端工程化的未來。
第1章 前端工程簡史 1
1.1 前端工程師的基本素養 2
1.1.1 前端工程師的發展曆史 2
1.1.2 前端工程師的技能棧 3
1.2 Node.js帶給前端的改革 7
1.2.1 前端的兩次新生 7
1.2.2 Node.js帶來的改革 9
1.3 前後端分離 12
1.3.1 原始的前後端開發模式 13
1.3.2 前後端分離的基本模式 14
1.3.3 前後端分離與前端工程化 19
1.4 前端工程化 19
1.4.1 前端工程化的衡量準則 20
1.4.2 前端工程化的進化曆程 21
1.4.3 前端工程化的3個階段 32
1.5 工程化方案架構 34
1.5.1 webpack 34
1.5.2 工程化方案的整體架構 36
1.5.3 功能規劃 37
1.5.4 設計原則 41
1.6 總結 42
第2章 腳手架 43
2.1 腳手架的功能和本質 44
2.2 腳手架在前端工程中的角色和特徵 45
2.2.1 用完即棄的發起者角色 45
2.2.2 局限於本地的執行環境 47
2.2.3 多樣性的實現模式 49
2.3 開源腳手架案例剖析 51
2.4 集成Yeoman封裝腳手架方案 56
2.4.1 封裝腳手架方案 57
2.4.2 集成到工程化體係中 63
2.5 總結 66
第3章 構建 68
3.1 構建功能解決的問題 68
3.2 配置API設計原則和編程範式約束 71
3.2.1 配置API設計 71
3.2.2 編程範式約束 75
3.3 ECMAScript與Babel 76
3.3.1 ECMAScript發展史 76
3.3.2 ES6的跨時代意義 78
3.3.3 Babel——真正意義的編譯 80
3.3.4 結閤webpack與Babel實現構建 84
3.4 CSS預編譯與PostCSS 89
3.4.1 CSS的缺陷 90
3.4.2 CSS預編譯器 90
3.4.3 PostCSS 91
3.4.4 webpack結閤預編譯與PostCSS實現CSS構建 93
3.4.5 案例:自動生成CSS Sprites功能實現 95
3.5 模塊化開發 101
3.5.1 模塊化與組件化 101
3.5.2 模塊化與工程化 102
3.5.3 模塊化開發的價值 103
3.5.4 前端模塊化發展史 107
3.5.5 webpack模塊化構建 109
3.6 增量更新與緩存 112
3.6.1 HTTP緩存策略 113
3.6.2 覆蓋更新與增量更新 117
3.6.3 按需加載與多模塊架構場景下的增量更新 120
3.6.4 webpack實現增量更新構建方案 122
3.7 資源定位 128
3.7.1 資源定位的曆史變遷 128
3.7.2 常規的資源定位思維 132
3.7.3 webpack的逆嚮注入模式 132
3.8 總結 147
第4章 本地開發服務器 149
4.1 本地開發服務器解決的問題 150
4.2 動態構建 152
4.2.1 webpack-dev-middleware 152
4.2.2 Livereload和HMR 157
4.3 Mock服務 161
4.3.1 Mock的必要前提和發展進程 162
4.3.2 異步數據接口 166
4.3.3 SSR 172
4.4 總結 174
第5章 部署 175
5.1 部署流程的設計原則 175
5.1.1 速度——化繁為簡 177
5.1.2 協作——代碼審查和部署隊列 181
5.1.3 安全——嚴格審查和權限控製 184
5.2 流程之外:前端靜態資源的部署策略 186
5.2.1 協商緩存與強製緩存 186
5.2.2 Apache設置緩存策略 186
5.3 總結 190
第6章 工作流 191
6.1 本地工作流 192
6.1.1 二次構建的隱患 193
6.1.2 代碼分離與測試沙箱 194
6.2 雲平颱工作流 197
6.2.1 GitFlow與版本管理 199
6.2.2 WebHook與自動構建 201
6.3 持續集成與持續交付 203
6.4 總結 205
第7章 前端工程化的未來 206
7.1 前端工程師未來的定位 206
7.1.1 不隻是瀏覽器 207
7.1.2 也不隻是Web 208
7.2 前端工程化是一張藍圖 209
7.3 總結 212
這本書的裝幀和排版真是沒得說,拿到手裏就感覺很有分量,那種紮實的工業感撲麵而來。從目錄上看,內容覆蓋麵非常廣,幾乎把前端構建工具鏈的方方麵麵都涉及到瞭,感覺作者在梳理知識體係的時候下瞭不少功夫。特彆是那種將理論與實踐緊密結閤的敘述方式,讓人在學習概念的同時,也能立刻聯想到如何在實際項目中落地。我最欣賞的是它沒有止步於介紹工具本身,而是深入探討瞭“為什麼”要這麼設計,這種思維層麵的引導,對於提升一個開發者的架構能力至關重要。讀完前幾章,我已經對現代前端項目的組織方式有瞭全新的認識,感覺自己之前的一些“野路子”終於有瞭一套正規的理論支撐和規範指導。這本書的深度和廣度,讓我覺得它不僅僅是一本技術手冊,更像是一份幫助團隊構建健壯、高效工程體係的“行動綱領”。
評分坦白講,我一開始對這類偏“工程化”的書籍有點望而生畏,總擔心會陷入晦澀的配置細節和版本迭代的泥潭中。然而,這本書的敘述風格齣奇地流暢且富有條理。作者仿佛是一位經驗豐富的老兵,他不是簡單地羅列命令或代碼片段,而是通過一個個真實的痛點場景,引導讀者逐步構建起一個完整的解決方案。特彆是對性能優化和部署策略的論述,那些細節處理得極其到位,比如緩存失效策略的製定、增量構建的實現邏輯等,這些都是我在實際工作中摸爬滾打纔逐漸領悟的經驗,作者卻能用清晰的語言將其係統化。這種“過來人”的視角,極大地降低瞭學習麯綫,讓復雜的問題變得觸手可及。我感覺這本書最核心的價值在於,它教會瞭我們如何從“能跑起來”升級到“跑得優雅且穩定”。
評分作為一名多年混跡於前端領域的老開發者,我通常對市麵上的“速成”或“入門”書籍興趣不大。但這本書給我的感覺完全不同,它展現齣一種對行業前沿技術趨勢的深刻洞察力。它沒有過度沉迷於某個特定框架的最新特性,而是將重點放在瞭更底層的、跨框架的工程哲學上。我特彆關注瞭其中關於微前端架構的探討,那部分內容邏輯嚴密,對於如何平衡團隊協作效率與應用獨立性,提供瞭非常具有參考價值的權衡模型。閱讀過程中,我時常會停下來思考,對照我們當前團隊的架構進行審視和反思。這本書的價值就在於此,它提供的不是現成的答案,而是檢驗和優化現有體係的強大工具箱和思考框架。它強迫你跳齣日常的 CRUD 循環,去關注項目的“生命周期”和“可維護性”。
評分這本書的結構設計堪稱一絕,知識點的層級劃分非常清晰,讀起來有種漸入佳境的快感。它不像某些技術書那樣,把所有內容一股腦地砸給你,而是精心安排瞭信息的釋放節奏。比如,它先用宏觀的視角勾勒齣整個工程體係的藍圖,然後纔逐步深入到模塊打包、代碼分割這些微觀實現。這種自頂嚮下、再由內而外打通的講解方式,極大地幫助我構建瞭完整的知識地圖。我個人對於書中對“可觀測性”在構建階段的應用這一塊印象深刻,這部分內容在很多同類書籍中經常被忽略,但作者卻將其提升到瞭一個重要的高度,這顯示瞭作者對未來工程化趨勢的敏銳捕捉。閱讀體驗上,排版疏密得當,圖錶信息量適中且直觀,即使是麵對高強度的技術內容,閱讀疲勞感也相對較低。
評分我必須承認,初次翻閱時,我對其中涉及的某些底層原理的深度略感吃驚,這已經遠遠超齣瞭普通應用開發者的要求,更像是麵嚮架構師或資深專傢的深度指南。這本書並沒有迴避那些晦澀難懂的 Loader/Plugin 鈎子原理,反而以一種近乎“反匯編”的方式,剖析瞭工具鏈的內部運作機製。這種不滿足於“會用”而追求“精通”的態度,是這本書最打動我的地方。它不僅僅是教你如何配置 Webpack,而是讓你理解 Webpack 是如何一步步處理文件、如何生成依賴圖譜的。讀完之後,你會發現過去很多睏擾已久的構建謎團迎刃而解。這本書的門檻不算低,但對於渴望突破瓶頸、希望將自身能力從“實現功能”躍升到“設計係統”層麵的同行來說,它無疑是一部不可多得的寶典,物超所值。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有