 
			 
				深入浅出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
这本书的装帧和排版真是没得说,拿到手里就感觉很有分量,那种扎实的工业感扑面而来。从目录上看,内容覆盖面非常广,几乎把前端构建工具链的方方面面都涉及到了,感觉作者在梳理知识体系的时候下了不少功夫。特别是那种将理论与实践紧密结合的叙述方式,让人在学习概念的同时,也能立刻联想到如何在实际项目中落地。我最欣赏的是它没有止步于介绍工具本身,而是深入探讨了“为什么”要这么设计,这种思维层面的引导,对于提升一个开发者的架构能力至关重要。读完前几章,我已经对现代前端项目的组织方式有了全新的认识,感觉自己之前的一些“野路子”终于有了一套正规的理论支撑和规范指导。这本书的深度和广度,让我觉得它不仅仅是一本技术手册,更像是一份帮助团队构建健壮、高效工程体系的“行动纲领”。
评分坦白讲,我一开始对这类偏“工程化”的书籍有点望而生畏,总担心会陷入晦涩的配置细节和版本迭代的泥潭中。然而,这本书的叙述风格出奇地流畅且富有条理。作者仿佛是一位经验丰富的老兵,他不是简单地罗列命令或代码片段,而是通过一个个真实的痛点场景,引导读者逐步构建起一个完整的解决方案。特别是对性能优化和部署策略的论述,那些细节处理得极其到位,比如缓存失效策略的制定、增量构建的实现逻辑等,这些都是我在实际工作中摸爬滚打才逐渐领悟的经验,作者却能用清晰的语言将其系统化。这种“过来人”的视角,极大地降低了学习曲线,让复杂的问题变得触手可及。我感觉这本书最核心的价值在于,它教会了我们如何从“能跑起来”升级到“跑得优雅且稳定”。
评分我必须承认,初次翻阅时,我对其中涉及的某些底层原理的深度略感吃惊,这已经远远超出了普通应用开发者的要求,更像是面向架构师或资深专家的深度指南。这本书并没有回避那些晦涩难懂的 Loader/Plugin 钩子原理,反而以一种近乎“反汇编”的方式,剖析了工具链的内部运作机制。这种不满足于“会用”而追求“精通”的态度,是这本书最打动我的地方。它不仅仅是教你如何配置 Webpack,而是让你理解 Webpack 是如何一步步处理文件、如何生成依赖图谱的。读完之后,你会发现过去很多困扰已久的构建谜团迎刃而解。这本书的门槛不算低,但对于渴望突破瓶颈、希望将自身能力从“实现功能”跃升到“设计系统”层面的同行来说,它无疑是一部不可多得的宝典,物超所值。
评分作为一名多年混迹于前端领域的老开发者,我通常对市面上的“速成”或“入门”书籍兴趣不大。但这本书给我的感觉完全不同,它展现出一种对行业前沿技术趋势的深刻洞察力。它没有过度沉迷于某个特定框架的最新特性,而是将重点放在了更底层的、跨框架的工程哲学上。我特别关注了其中关于微前端架构的探讨,那部分内容逻辑严密,对于如何平衡团队协作效率与应用独立性,提供了非常具有参考价值的权衡模型。阅读过程中,我时常会停下来思考,对照我们当前团队的架构进行审视和反思。这本书的价值就在于此,它提供的不是现成的答案,而是检验和优化现有体系的强大工具箱和思考框架。它强迫你跳出日常的 CRUD 循环,去关注项目的“生命周期”和“可维护性”。
评分这本书的结构设计堪称一绝,知识点的层级划分非常清晰,读起来有种渐入佳境的快感。它不像某些技术书那样,把所有内容一股脑地砸给你,而是精心安排了信息的释放节奏。比如,它先用宏观的视角勾勒出整个工程体系的蓝图,然后才逐步深入到模块打包、代码分割这些微观实现。这种自顶向下、再由内而外打通的讲解方式,极大地帮助我构建了完整的知识地图。我个人对于书中对“可观测性”在构建阶段的应用这一块印象深刻,这部分内容在很多同类书籍中经常被忽略,但作者却将其提升到了一个重要的高度,这显示了作者对未来工程化趋势的敏锐捕捉。阅读体验上,排版疏密得当,图表信息量适中且直观,即使是面对高强度的技术内容,阅读疲劳感也相对较低。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有