当前位置: 首页 > 知识库问答 >
问题:

"parserOptions.project"已为@typecript-eslint/parser设置

壤驷德寿
2023-03-14

我用< code> - template typescript创建了一个新的React本地项目

我删除了模板目录,它是样板文件的一部分。

然后我继续添加ESLint:

module.exports = {
  parser: "@typescript-eslint/parser",
  plugins: ["@typescript-eslint"],
  extends: ["airbnb-typescript-prettier"]
};

但是,当我打开< code>babel.config.js时,我得到了这个错误

解析错误:“parserOptions.project”已为@typecript-eslint/parser设置。

文件与您的项目配置不匹配:< code >/Users/Dan/site/babel . config . js 。

该文件必须至少包含在提供的一个项目中。eslint

共有3个答案

谭京
2023-03-14

在“. eslintignore”中添加一行:

eslintrc.js代码

慕阳伯
2023-03-14

您可以创建一个单独的TypeScript配置文件(tsconfig.eslint.json),用于eslint配置。该文件扩展了tsconfig配置,并且安装程序包含必须连接的文件的键。

< code>.eslint.js:

// ...
parserOptions: {
  // ...
  project: "./tsconfig.eslint.json",
  // ...
},
// ...

< code > ts config . eslint . JSON :

{
  "extends": "./tsconfig.json",
  "include": [
    // ...
    "babel.config.js"
  ]
}

或者,如果要忽略它,可以将其放入 .eslintignore 中。

。eslintignore

// ...
babel.config.js
敖和韵
2023-03-14

出现问题的原因如下:

  1. 您使用的规则需要类型信息,但没有指定parserOptions.project
  2. 您指定了parserOptions.project,没有指定createDefaultProgram(它将在未来的版本中被删除),并且您正在打印项目中未包含的文件(例如babel.config.jsmetro.config.js

来自 TypeScript ESLint Parser 文档:

此选项允许您提供项目的tsconfig.json的路径。如果您想使用需要类型信息的规则,则需要此设置。

(...)

请注意,如果指定了此设置,而< code > createDefaultProgram 未指定,则只能使用包含在由所提供的< code>tsconfig.json文件定义的项目中的lint文件。如果您的现有配置不包括您想要lint的所有文件,您可以创建一个单独的< code > ts config . eslint . JSON 。

要解决这个问题,请更新您的ESLint配置,以便仅对TypeScript文件使用TypeScript规则:

{
  // ...
  parser: '@typescript-eslint/parser',
  plugins: ["@typescript-eslint"],
  overrides: [
    {
      files: ['*.ts', '*.tsx'], // Your TypeScript files extension

      // As mentioned in the comments, you should extend TypeScript plugins here,
      // instead of extending them outside the `overrides`.
      // If you don't want to extend any rules, you don't need an `extends` attribute.
      extends: [
        'plugin:@typescript-eslint/recommended',
        'plugin:@typescript-eslint/recommended-requiring-type-checking',
      ],

      parserOptions: {
        project: ['./tsconfig.json'], // Specify it only for TypeScript files
      },
    },
  ],
  // ...
}

您可以在官方文档中阅读有关覆盖配置的更多信息:覆盖如何工作?

如果您不想lint错误中提到的文件(例如< code>babel.config.js),您可以忽略它,将其名称添加到< code >。eslintinignore 文件:

babel.config.js

无论如何,上面的步骤(关于重写TypeScript文件的配置)对于您的项目同时包含要删除的JavaScript和TypeScript文件非常重要。

您还可以为不同的情况创建其他替代,例如为测试文件创建不同的配置,因为它可以使用开发人员依赖项并在<code>节点

 类似资料:
  • 我能够设置ESLint与Encore(Symfony)一起工作。我的文件具有以下配置: 每当我观看这些文件时,我都会得到以下错误。 我尝试了以下几个环节的解决方案: https://github.com/vuejs/eslint-plugin-vue/issues/30 任何建议都将受到高度赞赏。谢谢你们

  • 我将NestJs与Typescript/TSLint一起使用,将VueJs与Javascript/ESLint一起使用。我的VSCode扩展是ESLint、TSLint、Prettier和Vetur。在开发后端时,一切都很好,代码的格式也很好。在使用Vue开发时,我使用airbnb linter配置,但遇到了问题。 假设我有一个vue实例 保存文件后,格式化程序将代码更新为 我无法运行代码,因为l

  • 我得到了错误:- IDE-WebStorm 20.1.1 项目结构:- .eslintrc。js:- baseeslint。js:- tsconfig.json:- 我完全不知道为什么会这样?我假设它会忽略根目录中的文件,尤其是我的tsconfg.json中指定的include? 任何帮助都将不胜感激。 编辑:- 我的解决办法,是不是应该帮助别人... 我将ignorePatterns配置添加到我

  • GNU解析器用于解析传递的gnu参数。 它现已弃用,并由DefaultParser取代。 例子 (Example) CLITester.java import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.GnuPa

  • Posix解析器用于解析Posix,就像传递的参数一样。 它现已弃用,并由DefaultParser取代。 例子 (Example) CLITester.java import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.

  • 问题内容: 我正在尝试在我的React项目上使用Airbnb的Javascript标准设置linting,它使用webpack。 根据评论更新了最新软件包。 我的webpack配置中也有一个预加载器设置 并进行了以下设置以运行脚本 我也有一个包含以下内容的文件 这给了我以下错误: 如果删除我认为可能有冲突的文件,则会出现以下错误: 随后出现npm错误,该错误导致任务退出。 任何帮助,将不胜感激!