问题: React is not defined
- 前提:是没有用到React但项目一定要引入,不引入就报错
- 解决方法: 以下四种方法
- 1.在项目顶部导入
import React from "react"
===> 多余 - 2.在React 17 版本中可以在
.babelrc
中添加 ===> 亲测有效,但需要重新构建几次1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20{
"presets": [
"@babel/preset-env",
["@babel/preset-react", {"runtime": "automatic"}] // 关键
]
}
-- 第一遍构建后,无效,把webpack.config.json中也添加了类似代码,
{
test: /\.(ts|tsx)$/,
use: {
loader: 'babel-loader',
options: {
presets: [
['@babel/preset-react', { runtime: 'automatic' }],
'@babel/preset-typescript',
],
},
},
}
-- 第二遍构建有效 - 3.在package.json 中添加
1
2
3
4
5
6
7
8
9
10
11
12
13
14// package.json
{
"babel": {
"presets": [
[
"react-app", // 换成对应的插件
{
"runtime": "automatic"
}
]
]
}
} - 4.在webpack.config.json中添加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18// webpack.config.js
{
loader: require.resolve('babel-loader'),
options: {
customize: require.resolve(
'babel-preset-react-app/webpack-overrides'
),
// Add this back
presets: [
[
require.resolve('babel-preset-react-app'),
{
runtime: hasJsxRuntime ? 'automatic' : 'classic',
},
],
],
}
}
- 1.在项目顶部导入