我用——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
我在添加'@typescript-eslint/prefer- nulish -coalescing': 'error'到.eslintrc.js时也遇到了同样的问题。
经过大量的试验和错误,我想出了这个解决方案,在我的情况下很管用:
module.exports = {
...
overrides: [
{
files: ['*.ts', '*.tsx'],
parserOptions: {
// this setting is required to use rules that require type information
project: './tsconfig.json',
},
rules: {
'@typescript-eslint/prefer-nullish-coalescing': 'error',
},
},
],
}
对我来说,这个问题发生在parserOptions中列出的项目时。项目扩展了基本的tsconfig。Json,它排除了这个文件。
删除extends: './tsconfig. txt。来自parserOptions中列出的项目的json。项目或从基本配置中删除exclude可以修复该问题。但是这种解决方法并不实用,因为我们需要扩展基本配置。
重写属性exclude将非常有帮助。
tsconfig.spec.json
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./dist",
"types": ["jest"]
},
"include": ["**/*.spec.ts"],
"exclude": [""]
}
该错误意味着有一个文件可以编译,但不属于当前定义的项目结构。有几种解决方案:
如果你不关心文件是否编译(即。配置文件等)
将文件名添加到.eslintignore
or
将文件或文件模式添加到.eslintrc.js文件中
ignorePatterns: ["babel.config.js"]
// or
ignorePatterns: ["**/*.config.js"]
您希望编译该文件
将文件、文件夹或模式添加到tsconfig中。json文件
include": [
"src",
"other_src",
]
说明部分修改需要重启IDE才能生效
简单地通过在.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文件,仅用于检测目的。