Webpack實戰:入門、進階與調優 ( 簡體 字) |
作者:居玉皓 著 | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 51170 詢問書籍請說出此書號!【有庫存】 NT售價: 345 元 |
出版日:5/1/2019 |
頁數:180 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111626312 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:本書是我從2017年冬天開始動筆的。在寫作本書之前的一段時間,我一直負責與前端項目構建相關的工作,也曾做過一系列Webpack在線課程,但是當接到寫一本關于Webpack的書的提議時,我著實猶豫了很久。最大的擔憂在于Webpack本身已經有詳盡的文檔,社區中也有無數關于它的博客文章,自己如何能找到一個新的角度,讓讀者有所受益。
于是我開始回想自己最初學習Webpack時的經歷—在了解它的過程中遇到哪些曲折,使用時碰到了哪些問題,有哪些點是我覺得如果當初我早就知道就好了的。通過回憶這些曾遇到過的磕磕絆絆,我逐漸找到了寫作本書的出發點—用我的語言盡可能簡單、直白地介紹Webpack,讓從來沒有接觸過Webpack的開發者也可以比較容易上手;同時把我所趟過的一些坑寫出來,讓讀到的人少走一些彎路。
有時能聽到一種戲稱—Webpack 配置工程師,從這里面大概能體會到Webpack的使用并不簡單。而這本書的作用之一大概就是把里面比較晦澀的部分解釋清楚,讓大家了解Webpack是怎么工作的,它其實并不神秘。
本書內容
本書共10章。第1章是一個導引,對Webpack有一定基礎的讀者可以選擇略過。第2章從頭梳理了模塊的概念。第3章至第7章介紹了Webpack的各項特性以及基本的使用場景。第8章和第9章則是進一步的優化以及一些高級的使用方法 。最后第10章介紹了其他打包工具并對這些工具進行了各項特性的對比。
代碼示例
書中有很多代碼片段,為了在線運行方便,我在GitHub上整理了一個示例倉庫,如果需要,可以進行查看。
致謝
我要特別感謝我的朋友們 。寫書是一個漫長而孤獨的過程,在此期間我得到了很多鼓勵和督促。有些時候朋友還要擔當我的校對者,即便對書中的內容不了解也會幫忙查看其中的錯誤 ,并提出閱讀體驗方面的建議,對我整本書的寫作有很大的幫助。
同時要感謝楊福川和李藝兩位編輯,在前期規劃以及寫作本書的過程中給予我不少指導,沒有他們就不可能有這本書的順利完成。
最后,感謝閱讀本書的你,希望你能喜歡。 |
內容簡介:這是一本能指導讀者零基礎快速掌握Webpack并輕松進階的實戰性著作。
作者是資深的前端工程師,在Webpack領域有深厚的積累,是知名開源打包工具YKit的主導者和核心開發者。本書從功能特性、工作原理、應用實踐、性能優化4個維度對Webpack進行了全面的講解,內容上盡力避免了網絡上已經公開發表的各種資料和文檔,而是從作者的實際經驗出發,將更有價值的內容呈現給讀者,盡量幫助讀者少走彎路。
全書一共10章:
第1章是一個快速的指引,介紹了Webpack的概念、適用場景、開發環境搭建,以及如何快速上手。
第2~7章詳細講解了Webpack的各項功能特性及其工作原理,同時講解了它們的適用場景,以及如何付諸實踐。
第8~9章深入總結了打包的性能優化和開發環境的優化。
第10章介紹了其他打包工具并對這些工具進行了各項特性的對比。 |
目錄:第1章 Webpack簡介1 1.1 何為Webpack1 1.2 為什么需要Webpack2 1.2.1 何為模塊2 1.2.2 JavaScript中的模塊3 1.2.3 模塊打包工具4 1.2.4 為什么選擇Webpack5 1.3 安裝5 1.4 打包第一個應用7 1.4.1 Hello World7 1.4.2 使用npm scripts9 1.4.3 使用默認目錄配置10 1.4.4 使用配置文件10 1.4.5 webpack-dev-server13 1.5 本章小結15 第2章 模塊打包17 2.1 CommonJS17 2.1.1 模塊18 2.1.2 導出18 2.1.3 導入20 2.2 ES6 Module22 2.2.1 模塊22 2.2.2 導出23 2.2.3 導入24 2.2.4 復合寫法26 2.3 CommonJS與ES6 Module的區別26 2.3.1 動態與靜態26 2.3.2 值拷貝與動態映射27 2.3.3 循環依賴29 2.4 加載其他類型模塊33 2.4.1 非模塊化文件34 2.4.2 AMD34 2.4.3 UMD35 2.4.4 加載npm模塊37 2.5 模塊打包原理38 2.6 本章小結41 第3章 資源輸入輸出42 3.1 資源處理流程42 3.2 配置資源入口44 3.2.1 context44 3.2.2 entry45 3.2.3 實例47 3.3 配置資源出口50 3.3.1 filename50 3.3.2 path53 3.3.3 publicPath54 3.3.4 實例56 3.4 本章小結57 第4章 預處理器59 4.1 一切皆模塊59 4.2 loader概述61 4.3 loader的配置63 4.3.1 loader的引入63 4.3.2 鏈式loader65 4.3.3 loader options65 4.3.4 更多配置66 4.4 常用loader介紹70 4.4.1 babel-loader70 4.4.2 ts-loader72 4.4.3 html-loader73 4.4.4 handlebars-loader73 4.4.5 file-loader74 4.4.6 url-loader76 4.4.7 vue-loader77 4.5 自定義loader78 4.6 本章小結82 第5章 樣式處理84 5.1 分離樣式文件84 5.1.1 extract-text-webpack-plugin85 5.1.2 多樣式文件的處理87 5.1.3 mini-css-extract-plugin89 5.2 樣式預處理91 5.2.1 Sass與SCSS91 5.2.2 Less93 5.3 PostCSS94 5.3.1 PostCSS與Webpack94 5.3.2 自動前綴95 5.3.3 stylelint96 5.3.4 CSSNext98 5.4 CSS Modules99 5.5 本章小結100 第6章 代碼分片101 6.1 通過入口劃分代碼101 6.2 CommonsChunkPlugin102 6.2.1 提取vendor105 6.2.2 設置提取范圍106 6.2.3 設置提取規則107 6.2.4 hash與長效緩存109 6.2.5 CommonsChunkPlugin的不足111 6.3 optimization.SplitChunks112 6.3.1 從命令式到聲明式114 6.3.2 默認的異步提取115 6.3.3 配置116 6.4 資源異步加載117 6.4.1 import()118 6.4.2 異步chunk的配置120 6.5 本章小結121 第7章 生產環境配置122 7.1 環境配置的封裝122 7.2 開啟production模式124 7.3 環境變量125 7.4 source map126 7.4.1 原理126 7.4.2 source map配置127 7.4.3 安全129 7.5 資源壓縮130 7.5.1 壓縮JavaScript130 7.5.2 壓縮CSS132 7.6 緩存133 7.6.1 資源hash133 7.6.2 輸出動態HTML134 7.6.3 使chunk id更穩定136 7.7 bundle體積監控和分析138 7.8 本章小結140 第8章 打包優化141 8.1 HappyPack141 8.1.1 工作原理142 8.1.2 單個loader的優化142 8.1.3 多個loader的優化144 8.2 縮小打包作用域145 8.2.1 exclude和include145 8.2.2 noParse146 8.2.3 IgnorePlugin146 8.2.4 Cache147 8.3 動態鏈接庫與DllPlugin147 8.3.1 vendor配置148 8.3.2 vendor打包149 8.3.3 鏈接到業務代碼150 8.3.4 潛在問題151 8.4 tree shaking152 8.4.1 ES6 Module153 8.4.2 使用Webpack進行依賴關系構建153 8.4.3 使用壓縮工具去除死代碼154 8.5 本章小結154 第9章 開發環境調優155 9.1 Webpack開發效率插件155 9.1.1 webpack-dashboard155 9.1.2 webpack-merge157 9.1.3 speed-measure-webpack-plugin160 9.1.4 size-plugin160 9.2 模塊熱替換162 9.2.1 開啟HMR162 9.2.2 HMR原理164 9.2.3 HMR API示例166 9.3 本章小結168 第10章 更多JavaScript打包工具169 10.1 Rollup169 10.1.1 配置170 10.1.2 tree shaking171 10.1.3 可選的輸出格式172 10.1.4 使用Rollup構建JavaScript庫173 10.2 Parcel173 10.2.1 打包速度174 10.2.2 零配置176 10.3 打包工具的發展趨勢178 10.3.1 性能與通用性178 10.3.2 配置極小化與工程標準化178 10.3.3 WebAssembly179 10.4 本章小結180 |
序: |