前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Webpack使用ReactRefreshWebpackPlugin对JSX文件进行本地热更新解析时 $RefreshSig$ is not defined

Webpack使用ReactRefreshWebpackPlugin对JSX文件进行本地热更新解析时 $RefreshSig$ is not defined

作者头像
Qwe7
发布2022-06-29 08:22:54
9820
发布2022-06-29 08:22:54
举报
文章被收录于专栏:网络收集

前提

最近在进行Webpack5学习时,学习到HMR,也就是模块热替换,也叫模块热更新的时候,遇到了一个问题。

问题

在进行开发环境内模块热更新的时候,React是借助于React Hot Loader来实现的HMR,目前已经改成使用react-refresh来实现了。

于是乎,我进行了以下代码的编写

代码语言:javascript
复制
// webpack.config.js
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
module.exports = {
  // watch: true,
  entry: "./src/index.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, './build'),
    publicPath: "/"
  },
  devServer: {
    hot: true,
    port: 8765
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './index.html'
    }),
    new ReactRefreshWebpackPlugin(),
    new VueLoaderPlugin()
  ],
  module: {
    rules: [
      {
        test: /\.jsx?$/,
        use: "babel-loader"
      },
      {
        test: /\.vue$/i,
        use: "vue-loader"
      },
      {
        test: /\.css/i,
        use: [
          "style-loader",
          "css-loader"
        ]
      }
    ]
  }
}

代码语言:javascript
复制
// babel.config.js
module.exports = {
  presets: [
    ["@babel/preset-env"],
    ["@babel/preset-react"],
  ],
  plugins: [
    ["react-refresh/babel"]
  ]
}

然后就报出了下述错误。更绝望的是,网上百度不到为什么。

我一度以为是版本问题,但是怎么处理都不像。

还好最后参照了别人使用这个插件的代码,最后发现了问题。

解决方案

直接说问题解决方案

这里面的问题就在于webpack.config.js内module.exports里面的mode。

只要将这个mode设置为development就不会有问题了

代码语言:javascript
复制

// webpack.config.js
module.exports = {
    mode: 'development' // 就是这里
    ....
}

注:这个ReactRefreshWebpackPlugin在进行打包的时候,也会存在上述问题,所以对这个插件需要进行开发环境和打包环境的区分。production环境不能引入这个插件

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档