Warning: React version not specified in eslint-plugin-react settings

问题及吐槽

今天使用webpack4 + babel7搭建 React 运行环境启动测试的时候,发现eslint-plugin-react出现了一个警告,在之前版本的搭建过程中,并没有发现这个警告,虽然不会影响运行,但怎么也得看看到底怎么回事。

环境及版本:

1
2
3
4
5
"eslint": "^5.12.0",
"eslint-config-alloy": "^1.4.2",
"eslint-loader": "^2.1.1",
"eslint-plugin-html": "^5.0.0",
"eslint-plugin-react": "^7.12.3",

下面进入正题,警告内容是这样的:

Warning: React version not specified in eslint-plugin-react settings. See https://github.com/yannickcr/eslint-plugin-react#configuration

它说在eslint-plugin-react的插件配置的settings中没有指定具体的React版本,what! 这种事情插件不能自己搞定么,还需要去指定,打开给到的链接去看一波,

You should also specify settings that will be shared across all the plugin rules.
你应该在指定的所有插件规则共享的设置

1
2
3
4
5
6
7
8
9
10
11
12
{
"settings": {
"react": {
"createClass": "createReactClass", // Regex for Component Factory to use,
// default to "createReactClass"
"pragma": "React", // Pragma to use, default to "React"
"version": "detect", // React version. "detect" automatically picks the version you have installed.
// You can also use `16.0`, `16.3`, etc, if you want to override the detected value.
"flowVersion": "0.53" // Flow version
}
}
}

注意看这个配置"version": "detect" 的注释,将React的version设置为detect,将会自动选择您安装的版本,当然你也可以选择其他版本,有想说脏话的冲动,我不使用已经安装的版本,安装这个版本有毛用,直接默认detect不就完了么,何苦呢!!!

issue上 因为这个警告也是叫声一片。

处理

.eslintrc.js中添加settings,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
{
"extends": [
"eslint-config-alloy/react"
],
plugins: ["html"],
settings: {
react: {
pragma: "React",
version: "detect"
}
}
}