新书推荐

《Webpack实战:入门、进阶与调优》

长按二维码
了解及购买

资深前端工程师、Webpack技术专家、知名开源项目YKit主导者/核心开发者,从功能特性、工作原理、应用实践、性能优化4个维度全面讲解Webpack。

编辑推荐

1. 作者是资深的前端工程师,现就职于美国某互联网企业,曾就职于去哪儿,负责前端基础架构的建设。

2. 作者是资深的Webpack技术专家,是知名打包工具YKit的主导者和核心开发者,积累了丰富的实践经验,是Webpack的布道者。

3. 本书从功能特性、工作原理、应用实践、性能优化4个维度对Webpack进行了全面的讲解,系统性、深度、实战性兼具

内容简介

这是一本能指导读者零基础快速掌握Webpack并轻松进阶的实战性著作。

作者是资深的前端工程师,在Webpack领域有深厚的积累,是知名开源打包工具YKit的主导者和核心开发者。本书从功能特性、工作原理、应用实践、性能优化4个维度对Webpack进行了全面的讲解,内容上尽力避免了网络上已经公开发表的各种资料和文档,而是从作者的实际经验出发,将更有价值的内容呈现给读者,尽量帮助读者少走弯路。

作者简介

居玉皓

资深前端开发工程师,目前就职于美国在线流媒体平台Tubi TV,曾就职于去哪儿网,负责前端基础架构的建设,并主导开发了知名的开源打包工具YKit。

长期专注于前端构建领域,对Webpack有深入的研究,积累了丰富的实践经验,在国内为Webpack的发展和普及做了较多的努力和贡献。

目录

前言

第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

你与世界

只差一个

公众号

新书推荐 |《Webpack实战:入门、进阶与调优》相关推荐

  1. 新书推荐 |《5G NR标准:下一代无线通信技术》

    新书推荐 <5G NR标准:下一代无线通信技术> 点击上图了解及购买 本书以3GPP 2018年9月制定的R15版5G商用标准为基础,详解5G NR标准技术规范和成因 ,爱立信5G标准专家 ...

  2. 5G NR 标准:下一代无线通信技术

    昨天有一篇混子曰的文章,用通俗易懂的漫画方式为大家讲解了5G到底是什么东西,经过翻阅文章,我们也了解了一二,但是你只表面的知道了5G这个概念,但是深入的话还是没有了解,所以下面将继续讲5G技术规范NR ...

  3. 5G NR标准 第1章 什么是5G

    5G NR标准 第1章 5G概述 在过去的40年里,全球已经经历了四代移动通信(如图1.1) 第一代移动通信是在1980年左右出现的,以模拟传输为基础,主要技术是北美开发的AMPS (Advanced ...

  4. 5G NR标准 第5章 NR概览

    5G NR标准 第5章 NR概览 图5.1概述了3GPP中NR开发的时间表. 基于3GPP版本14的研究项目,NR的技术工作于2016年春季启动,该项目基于2015年秋季的启动研讨会.在研究项目阶段, ...

  5. 5G NR标准 第4章 LTE概述

    5G NR标准 第4章 LTE概述 LTE的工作始于2004年底,其总体目标是提供一种仅关注分组交换数据的新型无线接入技术. LTE规范的第一个版本,即第8版,已于2008年完成,商业网络的运营于20 ...

  6. 5G NR标准 第3章 5G频谱

    5G NR标准 第3章 5G频谱 3.1 移动系统的频谱 不同频率的频带具有不同的特性. 由于传播特性,较低频率的频段非常适合在城市,郊区和乡村环境中进行广域覆盖部署. 较高频率的传播特性使它们更难用 ...

  7. 《5G NR标准:下一代无线通信技术》读书笔记——NR概述

    目录 二.NR概述 1.与LTE相比,NR好处 2.高频操作和频谱灵活性 3.极简设计 4.向前兼容 5.传输方案/部分带宽和帧结构 6.双工方式 7.低时延支持 8.调度和数据传输 9.控制信道 1 ...

  8. 《5G NR标准:下一代无线通信技术》读书笔记——LTE概述

    目录 一.LTE概述 1.频谱灵活性 1.1载波聚合 1.2授权辅助接入 2.多天线增强 2.1扩展的多天线传输 2.2多点协作和传输 2.3增强的控制信道结构 3.密集度.微蜂窝和异构部署 3.1中 ...

  9. 5G NR标准: 第20章 5G的演进

    第20章 5G的演进 NR 的第一个版本,第 15 版,侧重于对 eMBB 的基本支持,在某种程度上,URLLC.1 如前几章所述,第 15 版是为即将发布的 NR 未来发展构建的基础 . NR 演进 ...

  10. 5G NR标准 第13章 重传协议

    第13章 重传协议 通过无线信道的传输容易出错,例如,由于接收信号质量的变化. 在某种程度上,这种变化可以通过第 14 章中讨论的链路适配来抵消.但是,接收机噪声和不可预测的干扰变化无法抵消. 因此, ...

最新文章

  1. 大二上期计算机试题答案,2019年对口升学班上期期末计算机网络技术试卷及答案知识讲解.doc...
  2. python下载晚上excel_Python自动操控excel,一小时解决你一天的工作
  3. C++ 重载强制类型转换运算符
  4. 一个程序猿的生命周期
  5. 【李宏毅2020 ML/DL】P53-55 Conditional Generation by RNN Attention Pointer Network Recursive
  6. C#调用java类、jar包方法
  7. linux clone命令,【linux命令】git clone 用法说明
  8. 给DW2XLS源代码增加了同时导出多个dw的代码(合并多个dw)
  9. 软件工程造价是做什么的?
  10. 【计算机视觉】数字图像处理(五)—— 图像的退化与复原
  11. 扫盲:Java 后端开发常用的 10 种第三方服务
  12. 超全详解2018 谷歌 I/O大会
  13. 保利威视教程:什么是HLS?
  14. OpenGL中矩阵的存储方式
  15. 【通信原理】实验七、基于Matlab的均匀量化和非均匀量化
  16. 口腔菌群想要突破?这一方法潜力无限
  17. SSM框架学习——Maven进阶学习
  18. Python 雪球API 股票价格监控预警程序脚本
  19. 申宝公司-探底回升再续升势
  20. 几个简单的时间复杂度计算问题

热门文章

  1. 【华为游戏服务】同一游戏同一个手机号的华为帐号登录返回的playerId不同
  2. Blender: Python Scripting Blender教程之如何使用Python脚本 Lynda课程中文字幕
  3. 抖音| 发布短视频注意事项有哪些你知道吗?
  4. python安装cv2库
  5. php7.4 json_encode转换float类型丢失精度问题
  6. 对平底锅和垃圾的O奖论文的整理和学习[2](2018-02-08发布于知乎)
  7. 使用DIV+CSS技术设计的非遗文化网页与实现制作(web前端网页制作课作业)
  8. wps文档复制粘贴序号_WPS居然也搞人工智能?学会这几个AI功能之后我的工作效率提高了一半!...
  9. bulter机器人_盘点 | 那些在仓库里抢人饭碗的机器人们
  10. 【Adobe】Premiere怎么把视频旋转