# webpack 安装与配置字段讲解
- 安装 webpack, webpack-cli; webpack4 支持 0 配置打包
- 运行 npx webpack
- webpack 配置
- 基本:mode, entry, output, cache
- loader: webpack默认只支持 JS 与 JSON, module-->rules[{test, use, type: 'asset', noParse}]
- babel-loader----@babel/core, @babel/preset-env, @babel/preset-flow, @babel/preset-react, @babel/preset-typescript
- @babel/plugin-proposal-decorators
- @babel/plugin-proposal-class-properties
- cache-loader
- thread-loader
- postcss-loader
- sass-loader
- (file-loader 字体、图片引入的问题,copy 到指定目录)已内置
- (url-loader 图片小于 limit 时,转成 base64;大于 limit 时,依然使用 file-loader 进行拷贝)已内置,type:'javascript/auto'
- img-loader 图片压缩
- babel-loader----@babel/core, @babel/preset-env, @babel/preset-flow, @babel/preset-react, @babel/preset-typescript
- asset
- resource: 分割出来的单独文件,并导出 url
- inline: 资源导出为 dataUrl 的形式
- source: 资源导出为源码
- plugin: 贯穿 webpack 打包的生命周期,执行不同的任务
- html-webpack-plugin
- clean-webpack-plugin
- postcss-preset-env---postcss.config.js
- mini-css-extract-plugin 分离样式---filename
- optimize-css-assets-webpack-plugin 压缩
- purgecss-webpack-plugin 单独提取 css, 并清除用不到的
- webpack-bundle-analyzer
terser-webpack-plugin- optimization.splitChunks
- cacheGroups 配置提取模块的方案
- prefetch, preload
- devServer
- static: 直接去对应静态目录读取文件,不需要移动到 dist,再读取
- compress
- port
- open: 自动打卡浏览器
- mode----eval-cheap-module-source-map
- inline dataUrl 形式引入 sourceMap
- eval ...形式执行代码,dataUrl...
- cheap 定位到行信息
- module 展示代码中的错误位置
- hash, chunkhash, contenthash
- resolve: alias,
- extensions: [...] 保留默认配置
- externals: 「从输出的 bundle 中排除依赖」
1