【问题标题】:Create React App 4 not applying custom eslint configuration during the compiling process创建 React App 4 在编译过程中不应用自定义 eslint 配置
【发布时间】: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


【解决方案1】:

如果项目文件夹中有.eslintcache 文件,请尝试将其删除并重新构建。

可以使用node --inspect-brk node_modules/react-scripts/scripts/build 调试整个构建,并使用 chrome://inspect 设置断点来跟踪 ESLint 行为不同的原因,或者从模板创建一个新项目以确定导致行为改变的原因.

【讨论】:

  • 好吧,这不是很有帮助,因为它并没有告诉我什么新东西,但是既然你是唯一一个回复麻烦的人,那么赏金就是你的了。干杯
猜你喜欢
  • 2021-04-20
  • 2021-01-11
  • 2017-12-04
  • 2020-06-11
  • 2022-01-07
  • 2021-03-06
  • 2019-01-06
  • 1970-01-01
  • 2021-02-15
相关资源
最近更新 更多