每当我尝试在提交时使用 lint-staged 运行 eslint 时,我都会收到有关 parserOptions.project 的以下错误:
对于简单的 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 无济于事。
非常感谢