typescript-eslint config: le fichier .eslintrc 'module' n'est pas défini
Je mets en place un nouveau projet comme décrit dans la documentation de démarrage de typescript-eslint . Cependant, dans mon .eslintrc.js
fichier, j'obtiens une erreur:
'module' n'est pas défini.eslint (no-undef)
Maintenant, si je retire eslint:recommended
de la extends
de la configuration, cette erreur disparaît. Cependant, les règles typiques aiment debugger
ou const iAmUnused = true
ne sont pas reprises par ESLint, donc cela ressemble un peu à un coup de taupe.
Pourquoi mon fichier ESLint est-il récupéré lorsqu'il se trouve à la racine de mon projet avec l' eslint:recommended
option activée? Je ne veux pas inclure ce fichier dans mon .eslintignore
car lors de l'exécution de ma eslint
commande, cela indique que ce fichier est déjà automatiquement ignoré, mais ce n'est pas le cas 🤷♂️
ESLINTRC:
module.exports = {
root: true,
parser: '@typescript-eslint/parser',
parserOptions: {
project: '*/tsconfig.json',
},
settings: {
react: {
version: 'detect',
},
},
plugins: ['@typescript-eslint', 'jest', 'react', 'react-hooks'],
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:jest/recommended',
'plugin:prettier/recommended',
'plugin:react/recommended',
'plugin:react-hooks/recommended',
'prettier',
'prettier/@typescript-eslint',
],
rules: {
'no-unused-vars': 2,
},
env: {
browser: true,
es6: true,
jest: true,
},
overrides: [
{
files: ['**/*.tsx'],
rules: {
'react/prop-types': 'off',
},
},
],
};
TSConfig:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"declaration": true,
"declarationDir": "build",
"jsx": "react",
"lib": ["es6", "dom", "es2016", "es2017"],
"module": "esnext",
"moduleResolution": "node",
"noEmit": true,
"resolveJsonModule": true,
"rootDir": "./src",
"rootDirs": ["./src"],
"sourceMap": true,
"strict": true,
"target": "es5"
},
"include": ["./src"],
"exclude": ["node_modules", "build", "dist", "src/**/*.stories.tsx", "src/**/*.test.tsx"]
}
Réponses
Il semble que la env
mise à jour soit nécessaire à partir de:
env: {
browser: true,
es6: true,
jest: true,
},
à inclure node: true
pour que l' module
erreur soit résolue.
https://eslint.org/docs/user-guide/configuring#specifying-environments
Vous devez spécifier le ou les environnements pertinents pour votre projet.
Dans ce cas, vous voudrez probablement ajouter l' commonjs
environnement.
J'envisagerais simplement de désactiver la no-undef
règle, car c'est une vérification qui est déjà couverte par TypeScript lui-même.