Por que o ESLint está tentando rodar no seu próprio arquivo de configuração ao usar TypeScript?
Eu tenho .eslintignore bem ao lado de eslintrc.js
O ignorar é simplesmente isto:
.eslintrc.js
dist/*
node_modules/*
out-tsc/*
No entanto, quando eu entro em eslintrc.js, recebo este erro:
Parsing error: ESLint was configured to run on `<tsconfigRootDir>/.eslintrc.js` using `parserOptions.project`: <tsconfigRootDir>/../../../../../../users/dstein/repositories/social-experiment/packages/site/tsconfig.json
However, that TSConfig does not include this file. Either:
- Change ESLint's list of included files to not include this file
- Change that TSConfig to include this file
- Create a new TSConfig that includes this file and include it in your parserOptions.project
See the typescript-eslint docs for more info: https://typescript-eslint.io/linting/troubleshooting#i-get-errors-telling-me-eslint-was-configured-to-run--however-that-tsconfig-does-not--none-of-those-tsconfigs-include-this-file
O artigo para o qual ele faz link, como era de se esperar, diz para usar .eslintignore se você não quiser verificar a lintagem do arquivo em que o erro ocorre. Enquanto isso, minha configuração do TS não diz para incluir nenhum arquivo js.
{
"compilerOptions": {
"target": "es2018",
"module": "esnext",
"moduleResolution": "node",
"noEmitOnError": true,
"lib": ["es2017", "dom"],
"strict": true,
"esModuleInterop": false,
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
"importHelpers": true,
"outDir": "out-tsc",
"sourceMap": true,
"inlineSources": true,
"rootDir": "./",
"incremental": true
},
"include": ["**/*.ts"],
}
Realmente perplexo por que a Configuração do TS dizendo para incluir apenas arquivos ts teria o ESLint configurado para rodar usando parserOptions.project
A configuração do ESLint é bastante simples (vou remover todas as regras para economizar leitura aqui):
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
parserOptions: {
tsconfigRootDir: __dirname,
project: ['./tsconfig.json'],
},
plugins: ['@typescript-eslint'],
env: {
es6: true,
browser: true,
},
extends: [
'@open-wc',
'eslint:recommended',
'plugin:import/recommended',
'prettier',
],
rules: {},
};
Resposta #1
Adicione seu arquivo de configuração do eslint à lista de arquivos a serem ignorados na própria configuração.
Algo assim:
ignorePatterns: ['dist', '.eslintrc.js', 'postcss.config.js'],
