配置React工程化环境
通过手动配置React开发环境了解常用webpack的loader & plugin。
处理常见资源
众所周知,webpack只能识别js,其他文件如果直接引入是无法识别的,那么就需要借助loader & plugin的能力帮助webpack处理这些文件。
- 图片资源
- File-loader
在JS代码中import/require文件时,会将该文件生成到输出目录,默认文件名是哈希值,可以自定义文件名。
- File-loader
1 | |
- Url-loader
功能与File-loader类似,但是在设定limit字段后,当引入的文件小于指定大小会将文件转为Base64格式。
1 | |
- svg-inline-loader
会将 SVG 文件内联为模块。 - css文件
- Css-loader
解析@import/url()引入的文件。
- Css-loader
1 | |
- style-loader
配合css-loader使用,将css插入到dom中。 - html文件
- HtmlWebpackPlugin
当使用webpack打包时,创建 / 引用一个html 文件,并把webpack 打包后的静态文件自动插入到这个html 文件当中。
- HtmlWebpackPlugin
1 | |
- jsx or tsx
- Babel-loader + @babel/preset-react / @babel/preset-typescript
将jsx / tsx文件使用babel-loader,React 预设规则集 @babel/preset-react ,完成 JSX 到 JS 的转换。
- Babel-loader + @babel/preset-react / @babel/preset-typescript
1 | |
- vue
- vue-loader vue单文件的解析
1 | |
热更新
安装 webpack-dev-server, 如下配置
1 | |
代码规范
- Eslint
js语法检测
1 | |
- stylelint
样式文件语法检测。
1 | |
git提交
- 配置commitlint
帮我们检查 git commit 所提交信息是否符合conventional commit format的工具
1 | |
- 安装husky
帮我们每次 git 提交时自动执行检查
1 | |
Create-react-app
有关create-react-app中用到的插件和loader
Plugin
- html-webpack-plugin
当使用webpack打包时,创建 / 引用一个html 文件,并把webpack 打包后的静态文件自动插入到这个html 文件当中
- case-sensitive-paths-webpack-plugin
如果路径有误则直接报错
- terser-webpack-plugin
使用terser压缩JS代码
- mini-css-extract-plugin
将CSS提取为独立的文件的插件,对每个包含css的js文件都会创建一个CSS文件,支持按需加载css和sourceMap
- css-minimizer-webpack-plugin
使用 cssnano 优化和压缩 CSS
- webpack-manifest-plugin
生产资产的显示清单文件
- workbox-webpack-plugin
自动生成 Service Worker 和 静态资源列表 用于PWA
- eslint-webpack-plugin
Loader
- Css-loader
处理css文件
- Style-loader
将css插入dom
- Postcss-loader
使用PostCSS处理CSS 可以补全兼容性前缀
- resolve-url-loader
可基于原始源文件解析 url ()语句中的相对路径
- source-map-loader
将源代码与打包过的代码建立映射关系
- @svgr/webpack
支持svg作为组件引入
- file-loader
在JS代码中import/require文件时,会将该文件生成到输出目录,默认文件名是哈希值,可以自定义文件名
- babel-loader
es6 -> es5
- sass-loader
处理sass 、scss
配置React工程化环境
https://jing-jiu.github.io/jing-jiu/2022/09/15/工程化/配置React工程化环境/