Pesquisa de site

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'],

Artigos relacionados