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

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

作者头像
Qwe7
发布于 2022-06-29 00:22:54
发布于 2022-06-29 00:22:54
1.1K00
代码可运行
举报
文章被收录于专栏:网络收集网络收集
运行总次数:0
代码可运行

前提

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

问题

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 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
代码运行次数:0
运行
AI代码解释
复制
// 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
代码运行次数:0
运行
AI代码解释
复制

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

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

本文系转载,前往查看

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

本文系转载,前往查看

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[探索]Webpack DevServer和HMR原理
原创不易,未经作者允许禁止转载!! Webpack-Dev-Server 为什么要搭建本地服务器 目前开发的代码,为了运行需要有两个操作 npm run build编译 通过live-server或者直接通过浏览器打开html文件,查看效果 为了完成自动编译,webpack提供了几种可选的方式 Webpack watch mode Webpack-dev-server Webpack-dev-middleware Webpack Watch Mode webpack提供了watch模式 在该模式下,web
前端LeBron
2021/12/08
1.9K0
[探索]Webpack DevServer和HMR原理
webpack5构建一个小型简单vue项目 (练习)
webpack5构建vue 必要环境 安装ndejs 我们需要安装node 如果没有安装则安装 安装过则跳过 下载安装nodejs 执行 node -v npm -v [在这里插入图片描述] 初始化项目文件夹 新建一个空的项目 执行 npm init -y 初始化 npm init -y 会生成一个package.json [在这里插入图片描述] 安装webpack以及 html-webpack-plugin 控制台执行 npm i webpack webpack-cli webpack-dev-serv
代码哈士奇
2022/01/31
1K1
怎么用webpack搭建前端环境?
一、前端构建工具 grunt gulp webpack(主流,https://webpack.js.org/) Fis3(百度) 二、webpack是什么 webpack 是一个现代 JavaScript 应用程序的静态模块打包器 webpack稳定版本:v4.44 三、如何使用webpack搭建前端环境 安装node.js( v12.x) 注意:如果npm安装一些包由于网速原因,安装慢切换一下镜像源 改成淘宝镜像: npm config set registry https://registry.np
江一铭
2022/06/16
1.2K0
Vue 3 和 Webpack 5 来了,手动搭建的知识该更新了
前言 想必绝大多数用 Vue 开发过项目的同学,或多或少会有以下两种情况: 用 Vue CLI 工具去搭建一个项目。 在领导或同事搭建好的项目基础上做业务。 长此以往,会导致你对整个项目的把控度越来
Nealyang
2021/02/01
1.9K0
Vue 3 和 Webpack 5 来了,手动搭建的知识该更新了
Webpack中的高级特性
自从webpack4以后,官方帮我们集成了很多特性,比如在生产模式下代码压缩自动开启等,这篇文章我们一起来探讨一下webpack给我们提供的高级特性助力开发。
gogo2027
2022/10/21
5730
webpack配置完全指南
首先webpack是一个静态模块打包器,所谓的静态模块,包括脚本、样式表和图片等等;webpack打包时首先遍历所有的静态资源,根据资源的引用,构建出一个依赖关系图,然后再将模块划分,打包出一个或多个bundle。再次白piao一下官网的图,生动的描述了这个过程:
gogo2027
2022/10/03
1.2K0
吐血整理的webpack入门知识及常用loader和plugin
在这个内卷为王的时代,内卷文化已经渗透到工作和生活的方方面面。不在知识的海洋里翱翔,就会在知识的海洋里溺亡。作为一名新生代农民工,在智商与勤奋已经被工友大佬们双重碾压的同时,面对日新月异的搬砖(编程)技能,学习的速度已经赶不上遗忘的速度,可是还得强忍泪水拥抱变化、不断打怪升级。
腾讯新闻前端团队
2022/06/10
1.6K0
webpack高级配置_2023-03-01
我主要是想说摇树失败的原因(tree shaking 失败的原因),先讲下摇树本身效果
gogo2027
2023/03/01
9080
Webpack4 新手完全攻略
为了优化前端工程, 我们通常会将静态文件压缩,减少带宽占用; 将静态文件合并,减少http请求, webpack可以轻易实现静态文件的压缩合并以及打包的功能, 除此之外, webpack还支持众多的loader插件, 通过loader插件可实现众多类型(如vue, less, jpg, css)资源的打包 webpack的文档写的相当出色, 为了方便读者学习, 下面每一类配置的注释里, 都附上了参考的原文档地址, 如果以后配置更新了,也方便查看更新的文档 如果不想自己配置, 可以直接拷贝最后的配置文档到自己
zhaoolee
2018/04/28
9800
Webpack4 新手完全攻略
webpack高级配置
我主要是想说摇树失败的原因(tree shaking 失败的原因),先讲下摇树本身效果
gogo2027
2022/10/18
8040
2022-webpack5实战教程
打包成功之后,查看dist目录下的index.html文件是否引用了打包之后的js
gogo2027
2022/10/17
8880
webpack配置优化,让你的构建速度飞起
越来越多的项目使用webpack5来构建项目了,今天给大家带来最前沿的webpack5配置,让我们代码在编译/运行时性能更好~
gogo2027
2022/10/03
2.4K0
webpack构建自定义vue应用
相比较react,vue所需要的插件要少得多,我们知道在vue中,大多数是以.vue的模版组件,因此关键是我们可以用webpack的相关loader能够解析.vue文件即可,在vue项目中解析单文件组件,热加载,css作用域等全部依赖于这个插件vue-loader[1],因此vue-loader算是vue工程化中必不可少的一个插件。
Maic
2022/07/28
5150
webpack构建自定义vue应用
万字梳理 Webpack 常用配置和优化方案
在项目根目录下新建 webpack.config.js,作为 webpack 的默认配置文件。
Chor
2021/09/08
2.9K0
从0开始Vue.js 和 Webpack 4 [2]
原因:当配置index.html时,指定了javascript的具体路径,为了使热模块重新加载工作,需要允许注入此路径,这样就可以实时更新html了。
bit20041436
2018/09/05
1.1K0
webpack从零搭建开发环境
为了方便也可以这么写,使用 npm run 命令这个命令执行的时候默认会把 node_modules 的.bin 文件放到全局上,执行之后销毁npm run buildnpm run dev
小丑同学
2020/09/21
1.3K0
使用Webpack5创建Vue2项目及优化
之前我们大多都是用Vue-Cli来创建项目,但是Vue-Cli已经停止更新了,并且Vue-Cli相当于一堆插件的集合体,我们想替换以下,或者想根据我们的项目优化以下,提升编译的性能,这时候可以自己用Webpack来配置项目。
码客说
2022/09/27
3K0
使用Webpack5创建Vue2项目及优化
Webpack笔记
插一嘴:范文杰老师的公众号Tecvan有很多干活,可以关注一下。(下面的部分有好多都有很有用的扩展链接,偷懒,就直接把老师的公众号贴出来)
赤蓝紫
2023/01/02
3600
Webpack笔记
用 webpack 4.0 撸单页/多页脚手架 (jquery, react, vue, typescript)
首先来简单介绍一下webpack:现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个会映射项目所需的每个模块 的依赖图(dependency graph),并生成一个或多个 bundle。webpack4.0出现之后,我们可以不用再引入一个配置文件来打包项目,并且它仍然有着很高的可配置性,可以很好满足我们的需求。 在开始正文之前,首先先来看看我们要实现的成果:
徐小夕
2019/08/08
2.3K0
用 webpack 4.0 撸单页/多页脚手架 (jquery, react, vue, typescript)
还学不会webpack?看这篇!
Webpack已经流行好久了,但很多同学使用webpack时还是一头雾水,一下看到那么多文档、各种配置、各种loader、plugin立马就晕头转向了。我也不例外,以至于很长一段时间对webpack都是一知半解的状态。但是想要继续做好前端,webpack是必须得跨过的一道坎,其实掌握webpack并不难,只是我们没有找到正确的方法。本文就是我自己在学习webpack时的一点心得体会,供大家参考。
MudOnTire
2019/07/02
4860
还学不会webpack?看这篇!
相关推荐
[探索]Webpack DevServer和HMR原理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文