我用——template typescript创建了一个新的React Native项目
我删除了作为样板的一部分的模板目录。
然后我继续添加ESLint:
module.exports = {
parser: "@typescript-eslint/parser",
plugins: ["@typescript-eslint"],
extends: ["airbnb-typescript-prettier"]
};
然而,当我打开babel.config.js时,我得到这个错误
解析错误:"parserOptions. "已经为@typescript-eslint/parser设置了Project "。
该文件与您的项目配置不匹配:/Users/Dan/site/babel.config.js。
该文件必须包含在至少一个提供的项目中。eslint
在我的ESLint配置中,我有以下配置:
.eslintrc.js
module.exports = {
root: true,
env: {
node: true,
},
globals: {
Promise: "readonly"
},
parser: "@typescript-eslint/parser",
parserOptions: {
sourceType: "module",
tsconfigRootDir: __dirname,
project: ["./tsconfig.eslint.json"],
},
plugins: ["@typescript-eslint"],
extends: [
"eslint:recommended",
"prettier/@typescript-eslint",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
],
}
更新
修复的关键部分是:
parser: "@typescript-eslint/parser"
这:
parserOptions: {
sourceType: "module",
tsconfigRootDir: __dirname,
project: ["./tsconfig.eslint.json"], // could be tsconfig.json too
}
不要忘记在tsconfig.json的include数组中包含该文件或文件的目录。
我碰巧有同样的问题一段时间,然后在添加.html到我的tsconfig的包含数组。Json文件,问题已被修复。
因为我在做一个Angular项目,所以在overrides中的files数组中,你可能会看到我的components扩展名,你可能需要根据项目的需要进行更改。
在eslintrc。Json文件,你需要有以下配置:
"extends": [
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:@angular-eslint/recommended"
],
"overrides": [
{
"files": ["*.ts", "*.component.html", "*.component.ts"],
"parserOptions": {
"project": ["./tsconfig.json"],
"extraFileExtensions": [".html"]
},
"rules": { "@typescript-eslint/prefer-nullish-coalescing": "error" }
}
],
"parser": "@typescript-eslint/parser",
确保在tsconfig中有以下行。json文件:
"include": ["**/*.d.ts", "**/*.ts", "**/*.html", "**/*.scss", "**/*.css"],
简单地通过在.eslintrc.js中添加ignorePatterns选项来指示eslint忽略它们:
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
parserOptions: {
project: './tsconfig.json',
},
ignorePatterns: ["babel.config.js"],
...
由于检测您的项目配置文件没有多大价值,您可以安全地忽略它们。
另外,我不会让它们成为你的tsconfig的一部分。Json或创建一个特殊的tsconfig.eslint.json文件,仅用于检测目的。
在我的ESLint配置中,我有以下配置:
.eslintrc.js
module.exports = {
root: true,
env: {
node: true,
},
globals: {
Promise: "readonly"
},
parser: "@typescript-eslint/parser",
parserOptions: {
sourceType: "module",
tsconfigRootDir: __dirname,
project: ["./tsconfig.eslint.json"],
},
plugins: ["@typescript-eslint"],
extends: [
"eslint:recommended",
"prettier/@typescript-eslint",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
],
}
更新
修复的关键部分是:
parser: "@typescript-eslint/parser"
这:
parserOptions: {
sourceType: "module",
tsconfigRootDir: __dirname,
project: ["./tsconfig.eslint.json"], // could be tsconfig.json too
}
不要忘记在tsconfig.json的include数组中包含该文件或文件的目录。