react17热更新报错process is not defined

项目场景:

项目场景:react17版本,webpack5,craco


问题描述

代码改动后热更新报错,且页面卡住,刷新又可以了,报错如下;

Uncaught ReferenceError: process is not defined

原因分析:

然后各种百度找到答案说react-error-overlay版本太高了,降6.0.9


解决方案:

提示:这里填写该问题的具体解决方案:
但是安装后重新运行还是报错,后面找到一边博客说react-scripts需要更新,我就升级为最新,运行后提示craco-less版本过低,就有更新craco-less,运行后就可以了

在使用React加载本地图片时,如果在代码中直接使用`require`语法,可能会遇到`require is not defined`的报错。这是因为`require`是Node.js的模块导入语法,而浏览器并不原生支持`require`。 要在React中正确加载本地图片,可以使用以下几种方法: ### 方法一:使用import语句 在React组件文件中,使用`import`语句将图片导入,然后在`src`属性中使用导入的图片变量。 ```jsx import React from 'react'; import myImage from './path/to/image.jpg'; const MyComponent = () => { return ( <div> <img src={myImage} alt="My Image" /> </div> ); }; export default MyComponent; ``` ### 方法二:使用public文件夹 将图片放在`public`文件夹中,然后在`src`属性中使用绝对路径。 ```jsx import React from 'react'; const MyComponent = () => { return ( <div> <img src={`${process.env.PUBLIC_URL}/path/to/image.jpg`} alt="My Image" /> </div> ); }; export default MyComponent; ``` ### 方法三:使用require动态导入 如果需要在运行时动态导入图片,可以使用`require`语法,但需要确保在支持的环境中运行。 ```jsx import React from 'react'; const MyComponent = () => { const imagePath = require('./path/to/image.jpg'); return ( <div> <img src={imagePath} alt="My Image" /> </div> ); }; export default MyComponent; ``` ### 方法四:使用webpack的file-loader 配置webpack的file-loader来处理图片文件,然后在代码中使用`import`语句。 ```jsx // webpack.config.js module.exports = { // ... 其他配置 module: { rules: [ { test: /\.(png|jpe?g|gif)$/i, use: [ { loader: 'file-loader', }, ], }, ], }, }; ``` ```jsx import React from 'react'; import myImage from './path/to/image.jpg'; const MyComponent = () => { return ( <div> <img src={myImage} alt="My Image" /> </div> ); }; export default MyComponent; ``` 通过以上方法,可以在React中正确加载本地图片,避免`require is not defined`的报错
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值