0

每当我尝试在提交时使用 lint-staged 运行 eslint 时,我都会收到有关 parserOptions.project 的以下错误:

lint-staged 错误

对于简单的 Node JS 后端 + React 前端,我有以下项目结构。每个模块都有自己的 eslint+tsconfig 并且它们都扩展了基础模块。该项目是在每个中设置的,与错误所暗示的不同。当我正常运行 eslint 时,它的行为符合预期。

项目结构

tsconfig-base.json

{
    "extends": "@tsconfig/node16/tsconfig.json",
    "compilerOptions": {
        "allowSyntheticDefaultImports": true,
        "moduleResolution": "node",
        "sourceMap": true,
        "experimentalDecorators": true,
        "strict": false,
        "noImplicitAny": true,
        "noEmit": true
    },
    "baseUrl": ".",
    "rootDir": ".",
    "types": ["jest", "node", "jest-extended"],
    "compileOnSave": true,
    "exclude": ["node_modules"]
}

.eslintrc-base.js

module.exports = {
  ...
  parser: '@typescript-eslint/parser',
  ... // Various typescript related extend/plugins
}

服务器、客户端、共享中的.eslintrc.js

module.exports = {
  extends: '../../.eslintrc-base.js',
  parserOptions: {
    tsconfigRootDir: __dirname,
    project: ['./tsconfig.json'],
  },
};

服务器、客户端、共享中的tsconfig.json看起来有点像这样

{
  "extends": "../../tsconfig-base.json",
  "compilerOptions": {
    "outDir": "../../dist/shared"
  },
  "baseUrl": ".",
  "include": ["./src/**/*", ".eslintrc.js"]
}

包.json

{
  ...
  "lint-staged": {
    "**/*.{ts,js,tsx,jsx}": ["eslint --fix --cache", "prettier --write"]
  }
  ...
}

有谁知道是什么原因造成的?任何帮助将非常感激!请让我知道缺少任何信息。我也乐于接受更好的做事方式。

我尝试为每个模块运行不同的 lint-stage 命令,指定特定的 eslintrc.js 无济于事。

非常感谢

4

0 回答 0