科技
类型
6.5
豆瓣评分
可以朗读
语音朗读
189千字
字数
2018-01-01
发行日期
展开全部
主编推荐语
前端构建工具Webpack开山作,详解Webpack入门、配置、实战、优化、原理及新版特性,前端工程化必备。
内容简介
随着Web开发技术的发展,Webpack凭借其便于使用和涵盖面广的优势,成为目前非常流行的前端构建工具,是每位前端工程师的必备技能之一。
《深入浅出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》进一步提升对Webpack的理解,并在Web开发中更熟练地运用Webpack。
目录
- 版权信息
- 内容简介
- 前言
- 第1章 入门
- 1.1 前端的发展
- 1.1.1 模块化
- 1.1.2 新框架
- 1.1.3 新语言
- 1.2 常见的构建工具及对比
- 1.2.1 Npm Script
- 1.2.2 Grunt
- 1.2.3 Gulp
- 1.2.4 Fis3
- 1.2.5 Webpack
- 1.2.6 Rollup
- 1.2.7 为什么选择Webpack
- 1.3 安装Webpack
- 1.3.1 安装Webpack到本项目
- 1.3.2 安装Webpack到全局
- 1.3.3 使用Webpack
- 1.4 使用Loader
- 1.5 使用Plugin
- 1.6 使用DevServer
- 1.6.1 实时预览
- 1.6.2 模块热替换
- 1.6.3 支持Source Map
- 1.7 核心概念
- 第2章 配置
- 2.1 Entry
- 2.1.1 context
- 2.1.2 Entry类型
- 2.1.3 Chunk的名称
- 2.1.4 配置动态Entry
- 2.2 Output
- 2.2.1 filename
- 2.2.2 chunkFilename
- 2.2.3 path
- 2.2.4 publicPath
- 2.2.5 crossOriginLoading
- 2.2.6 libraryTarget 和 library
- 2.2.7 libraryExport
- 2.3 Module
- 2.3.1 配置Loader
- 2.3.2 noParse
- 2.3.3 parser
- 2.4 Resolve
- 2.4.1 alias
- 2.4.2 mainFields
- 2.4.3 extensions
- 2.4.4 modules
- 2.4.5 descriptionFiles
- 2.4.6 enforceExtension
- 2.4.7 enforceModuleExtension
- 2.5 Plugin
- 2.6 DevServer
- 2.6.1 hot
- 2.6.2 inline
- 2.6.3 historyApiFallback
- 2.6.4 contentBase
- 2.6.5 headers
- 2.6.6 host
- 2.6.7 port
- 2.6.8 allowedHosts
- 2.6.9 disableHostCheck
- 2.6.10 https
- 2.6.11 clientLogLevel
- 2.6.12 compress
- 2.6.13 open
- 2.7 其他配置项
- 2.7.1 Target
- 2.7.2 Devtool
- 2.7.3 Watch和WatchOptions
- 2.7.4 Externals
- 2.7.5 ResolveLoader
- 2.8 整体配置结构
- 2.9 多种配置类型
- 2.9.1 导出一个Function
- 2.9.2 导出一个返回Promise的函数
- 2.9.3 导出多份配置
- 2.10 总结
- 第3章 实战
- 3.1 使用ES6语言
- 3.1.1 认识Babel
- 3.1.2 接入Babel
- 3.2 使用TypeScript语言
- 3.2.1 认识TypeScript
- 3.2.2 减少代码冗余
- 3.2.3 集成Webpack
- 3.3 使用Flow检查器
- 3.3.1 认识Flow
- 3.3.2 使用Flow
- 3.3.3 集成Webpack
- 3.4 使用SCSS语言
- 3.4.1 认识SCSS
- 3.4.2 接入Webpack
- 3.5 使用PostCSS
- 3.5.1 认识PostCSS
- 3.5.2 接入Webpack
- 3.6 使用React框架
- 3.6.1 React的语法特征
- 3.6.2 React与Babel
- 3.6.3 React与TypeScript
- 3.7 使用Vue框架
- 3.7.1 认识Vue
- 3.7.2 接入Webpack
- 3.7.3 使用TypeScript编写Vue应用
- 3.8 使用Angular2框架
- 3.8.1 认识Angular2
- 3.8.2 接入Webpack
- 3.9 为单页应用生成HTML
- 3.9.1 引入问题
- 3.9.2 解决方案
- 3.10 管理多个单页应用
- 3.10.1 引入问题
- 3.10.2 解决方案
- 3.11 构建同构应用
- 3.11.1 认识同构应用
- 3.11.2 解决方案
- 3.12 构建Electron应用
- 3.12.1 认识Electron
- 3.12.2 接入Webpack
- 3.13 构建Npm模块
- 3.13.1 认识Npm
- 3.13.2 抛出问题
- 3.13.3 使用Webpack构建Npm模块
- 3.13.4 发布到Npm
- 3.14 构建离线应用
- 3.14.1 认识离线应用
- 3.14.2 认识Service Workers
- 3.14.3 接入Webpack
- 3.14.4 验证结果
- 3.15 搭配Npm Script
- 3.15.1 认识Npm Script
- 3.15.2 Webpack为什么需要Npm Script
- 3.16 检查代码
- 3.16.1 代码检查具体是做什么的
- 3.16.2 怎么做代码检查
- 3.16.3 结合Webpack检查代码
- 3.17 通过Node.js API启动Webpack
- 3.17.1 安装和使用Webpack模块
- 3.17.2 以监听模式运行
- 3.18 使用Webpack Dev Middleware
- 3.18.1 Webpack Dev Middleware支持的配置项
- 3.18.2 Webpack Dev Middleware与模块热替换
- 3.19 加载图片
- 3.19.1 使用file-loader
- 3.19.2 使用url-loader
- 3.20 加载SVG
- 3.20.1 使用raw-loader
- 3.20.2 使用svg-inline-loader
- 3.21 加载Source Map
- 3.21.1 该如何选择
- 3.21.2 加载现有的Source Map
- 3.22 实战总结
- 第4章 优化
- 4.1 缩小文件的搜索范围
- 4.1.1 优化Loader配置
- 4.1.2 优化resolve.modules配置
- 4.1.3 优化resolve.mainFields配置
- 4.1.4 优化resolve.alias配置
- 4.1.5 优化resolve.extensions配置
- 4.1.6 优化module.noParse配置
- 4.2 使用DllPlugin
- 4.2.1 认识DLL
- 4.2.2 接入Webpack
- 4.3 使用HappyPack
- 4.3.1 使用HappyPack
- 4.3.2 HappyPack的原理
- 4.4 使用ParallelUglifyPlugin
- 4.5 使用自动刷新
- 4.5.1 文件监听
- 4.5.2 自动刷新浏览器
- 4.6 开启模块热替换
- 4.6.1 模块热替换的原理
- 4.6.2 优化模块热替换
- 4.7 区分环境
- 4.7.1 为什么需要区分环境
- 4.7.2 如何区分环境
- 4.7.3 结合UglifyJS
- 4.7.4 第三方库中的环境区分
- 4.8 压缩代码
- 4.8.1 压缩JavaScript
- 4.8.2 压缩ES6
- 4.8.3 压缩CSS
- 4.9 CDN加速
- 4.9.1 什么是CDN
- 4.9.2 接入CDN
- 4.9.3 用Webpack实现CDN的接入
- 4.10 使用Tree Shaking
- 4.10.1 认识Tree Shaking
- 4.10.2 接入Tree Shaking
- 4.11 提取公共代码
- 4.11.1 为什么需要提取公共代码
- 4.11.2 如何提取公共代码
- 4.11.3 如何通过Webpack提取公共代码
- 4.12 分割代码以按需加载
- 4.12.1 为什么需要按需加载
- 4.12.2 如何使用按需加载
- 4.12.3 用Webpack实现按需加载
- 4.12.4 按需加载与ReactRouter
- 4.13 使用Prepack
- 4.13.1 认识Prepack
- 4.13.2 接入Webpack
- 4.14 开启Scope Hoisting
- 4.14.1 认识Scope Hoisting
- 4.14.2 使用Scope Hoisting
- 4.15 输出分析
- 4.15.1 官方的可视化分析工具
- 4.15.2 webpack-bundle-analyzer
- 4.16 优化总结
- 第5章 原理
- 5.1 工作原理概括
- 5.1.1 基本概念
- 5.1.2 流程概括
- 5.1.3 流程细节
- 5.2 输出文件分析
- 5.3 编写Loader
- 5.3.1 Loader的职责
- 5.3.2 Loader基础
- 5.3.3 Loader进阶
- 5.3.4 其他Loader API
- 5.3.5 加载本地Loader
- 5.3.6 实战
- 5.4 编写Plugin
- 5.4.1 Compiler和Compilation
- 5.4.2 事件流
- 5.4.3 常用的API
- 5.4.4 实战
- 5.5 调试Webpack
- 5.6 原理总结
- 附录A 常用的Loader
- 附录B 常用的Plugin
- 附录C Webpack的其他学习资源
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。