J'ai créé un nouveau projet NestJS qui est un framework NodeJS très populaire. Mais j'ai cette erreur (voir le titre) sur mon IDE (PhpStorm 2020.2-Beta) et ESLint ne fonctionne pas du tout.
J'ai utilisé la CLI NestJS:
Typescript: 3.7.4 Node: 14.3.0 ESLint: 7.1.0 @typescript-eslint/parser: 3.0.2 Yarn: 1.22.4
Je ne semble pas être le seul à avoir ce problème, donc ce serait bien de trouver la cause de ce problème et de le résoudre une fois pour toutes.
J'ai déjà un problème en suspens mais je n'ai pas eu de réponse, c'est vraiment très problématique.
Si quelqu'un a une idée sur la façon de résoudre le problème et de conserver une intégration ESLint / Prettier avec PhpStorm , merci.
Repro
// tsconfig.json { "compilerOptions": { "module": "commonjs", "declaration": true, "removeComments": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "allowSyntheticDefaultImports": true, "target": "es2017", "sourceMap": true, "outDir": "./dist", "baseUrl": "./", "incremental": true } }
// .eslintrc.js module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', sourceType: 'module', }, plugins: ['@typescript-eslint/eslint-plugin'], extends: [ 'plugin:@typescript-eslint/eslint-recommended', 'plugin:@typescript-eslint/recommended', 'prettier', 'prettier/@typescript-eslint', ], root: true, env: { node: true, jest: true, }, rules: { '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/no-explicit-any': 'off', }, };
Versions
nest new nestjs-micro
3 Réponses :
Ajoutez-le aux includes dans tsconfig.json:
"include": [ ".eslintrc.js", ]
Je l'ai compris.
L'erreur se produit lorsque Typescript n'a pas de fichier à inclure pour la compilation.
La solution la plus simple consiste à créer un fichier tsconfig.build.json par exemple et à y spécifier les paramètres suivants:
{ "extends": "./tsconfig.json", "exclude": ["node_modules", "test", "dist", "dist/**/*spec.ts"], "include": ["src/**/*", ".eslintrc.js"] }
L'exemple ci-dessus est adapté pour NestJS mais devrait fonctionner pour d'autres projets.
La chose la plus surprenante est que ce n'est qu'une erreur qui apparaît sur PHPStorm, la construction, ça marche bien.
FWIW ce qui a fonctionné pour moi avec cette erreur était d'ajouter ignorePatterns: ['.eslintrc.js'],
au fichier .eslintrc.js
. Cette ligne indique à eslint
d'ignorer le fichier .eslintrc.js
(puisqu'il n'est pas inclus dans le tsconfig
projet déclaré par rootDir
).