webpack 学习笔记
Chapter 1
- webpack 默认配置⽂文件:webpack.config.js
- 能够经过 webpack --config 指定配置⽂文件

- 经过 npm script 运⾏行行 webpack,package.json里的script下配置。

Chapter 2

- 热更新:webpack-dev-server(WDS)

- 热更新:第一次打开(1-2-A-B),更改文件热更新(1-2-3-4)

-
文件指纹:css
- hash 字体和图片
- Chunkhash:js(和 webpack 打包的 chunk 有关,不不同的 entry 会⽣生成不不同的 chunkhash 值)
- contenthash:css
-
代码压缩:html
- js:内置unglify-webpack-plugin
- css:optimize-css-assets-webpack-plugin和cssnano.
因为是单独生成css,须要删除style-loader(这个是用来生成css插入header标签的)
- html:html-webpack-plugin
Chapter 3
Chapter 4
-
构建配置抽离成 npm 包npm

- 经过 webpack-merge 组合配置
- 冒烟测试:测试打包后是否构建报错,测试是否有html,css,js文件输出。
- 单元测试:mocha + chai(断言库)
- 测试覆盖率:istanbul
- 持续集成ci:Travis
- git commit 规范:规范git commit提交信息,自动生成change-log.


-
版本号规范:json
Chapter 5
- package.json 中使用 stats
- 速度分析: speed-measure-webpack-plugin
- 体积分析: webpack-bundle-analyzer
- 使用高版本:node和webpack
- 多进程多线程:webpack4原生:thread-loader
- 并行压缩: terser-webpack-plugin 开启 parallel 参数
- 分包:分离基础库:html-webpack-externals- plugin
- 进一步分包:预编译资源模块: 使用 DLLPlugin 进行分包,DllReferencePlugin 对 manifest.json 引用
-
使用缓存构建:缓存
- babel-loader 开启缓存
- terser-webpack-plugin 开启缓存
- 使用 cache-loader 或者 hard-source-webpack-plugin
- 缩小构建目标:好比 babel-loader 不解析 node_modules
- 减小文件搜索范围

- 图片压缩:imagemin
- tree shaking:去除没有用到的js和css
- 动态polyfill: 识别 User Agent,下发不一样的 Polyfill

欢迎关注本站公众号,获取更多信息