webpack配置热更新
使用webpac-dev-server自带的热更新
devServer的配置hot配置默认就是true,所以只改入口文件就好
1 | let root: ReturnType<typeof createRoot> | null = null; |
有可能module.hot这里会报类型错误,需要安装类型文件@types/webpack-env。
这个方案有一个缺点就是无法保存组件的状态,Webpack HMR 仅负责替换更新的模块代码,但 不感知组件状态。当模块重新加载时,组件实例会被销毁并重新创建,导致 state 重置。
react-refresh方案
这个方案的优点是可以保存组件状态,但是类组件的页面状态仍然无法保存。
安装以下依赖
1 | npm install -D @pmmmwh/react-refresh-webpack-plugin react-refresh |
修改webpack配置
1 | // webpack.config.js |