【发布时间】:2021-04-01 04:04:04
【问题描述】:
上下文
过去你必须在.env 文件中将EXTEND_ESLINT 标志设置为true,然后将其添加到package.json
// package.json
"eslintConfig": {
"extends": [
"react-app",
"./.eslintrc.json"
]
},
由于 CRA4 可以 extend 编译过程中使用的基本 eslint 配置,而无需启用任何标志,因为显然它是 enabled by default
我的.eslintrc.json 文件是这个
// .eslintrc.json
{
"extends": [
"react-app",
"plugin:jest-dom/recommended",
"prettier",
"plugin:@typescript-eslint/eslint-recommended"
],
"plugins": ["jest-dom", "@emotion", "@typescript-eslint"],
"rules": {
"no-unused-vars": "off",
"no-console": "warn"
},
"overrides": [
// TS only rules
{
"files": ["**/*.ts?(x)"],
"rules": {
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/no-explicit-any": "error"
}
}
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaFeatures": {
"jsx": true
},
"ecmaVersion": 2018,
"sourceType": "module"
}
}
我的package.json是这个
// package.json
"eslintConfig": {
"extends": [
"./.eslintrc.json"
]
},
运行eslint src --fix-dry-run --ext .tsx,.ts,.js,.jsx 给我✖ 30 problems (2 errors, 28 warnings)
问题
据我了解,当 CRA 编译代码时应该会出现相同的错误,因为据说扩展了 eslint 配置。但是,我的项目构建得很好,根本没有任何警告。
我尝试过的事情
// package.json
"eslintConfig": {
"extends": [
".eslintrc.json"
]
},
// package.json
"eslintConfig": {
"extends": [
"react-app", // even though my config already extends that
"./.eslintrc.json"
]
},
// package.json
"eslintConfig": {
"extends": [
"react-app", // even though my config already extends that
".eslintrc.json"
]
},
// package.json
"eslintConfig": {
//move my whole eslint configuration here and remove the .eslintrc.json file
},
Nothing 似乎实际上扩展 CRA 在编译时使用的 eslint 配置。
问题
我在这里做错了什么,还是这看起来像是 CRA 的问题?
【问题讨论】:
-
如果你运行
./node_modules/.bin/eslint src --fix-dry-run --ext .tsx,.ts,.js,.jsx会发生什么?可能是全局安装了不同的 eslint 版本的问题? -
不,没有全局安装的 eslint(来自终端的
which eslint没有显示任何内容,以确保)。运行您建议的输出与我在问题中描述的输出完全相同。 -
这是一个记录传递给 ESLintPlugin 选项的补丁,如果您可以运行构建并包含已评估选项的输出,可能会提供更多信息:gist.github.com/ricmatsui/8eeb353607cb20d39507db983b20ff1c(您可以手动应用补丁或使用
patch-package包) -
我在大意下回复了日志,谢谢
-
我也遇到了这个问题。 @DimitrisKaragiannis 你有没有找到一个解决方案让警告出现在 CRA 的终端输出中?
标签: reactjs create-react-app eslint eslintrc