React开发中的HMR(热替换)配置

本文介绍了如何在Webpack开发环境中利用HMR技术,包括CSS的内建支持和通过ReactRefreshWebpackPlugin实现的JavaScriptHMR。重点讲述了配置CSS加载器和在Webpack配置文件中引入及解决与webpack-dev-server版本冲突的方法。
摘要由CSDN通过智能技术生成

开发中无论是样式还是js修改,我们都希望局部更新以节约编译时间,也即HMR,其中css样式的HMR,style-loader已经内置实现,js的HMR则需要插件ReactRefreshWebpackPlugin:

1. Css HMR,在webpack的配置文件中,处理css的loader直接配置:

module.exports = {
    entry: "./src/main.js",
    output: {
    },
    module: {
        rules: [
            //处理css
            {
                test: /\.css$/,
                use: "style-loader", // 会实现css的HMR
                     "css-loader",
            },
};

2. js的HMR

1)首先需要在dev server中开启

module.exports = {
    devServer: {
        host: "localhost",
        port: XXXX,
        open: true, //自动打开浏览器
        hot: true, //开启热模块替换
    },
}

2)安装react-refresh插件:

npm install -D @pmmmwh/react-refresh-webpack-plugin react-refresh,

实际安装过程中,会因为该插件的peerDependencies中的"webpack-dev-server": "3.x || 4.x",跟已经安装的最新版本的webpack-dev-server的5.0以上的版本产生冲突,个人的解决方案是:安装插件时使用--force参数,但是有一定概率后续别的插件安装后还是会报错,重复安装了几次

3)webpack配置文件中声明、初始化插件

const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');


module.exports = {

    plugins: [
        //React的js HMR插件
        new ReactRefreshWebpackPlugin(),
    ],

}

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值