Tengo una aplicación Node/Express simple hecha con Typescript. Y eslint me da el error
Missing file extension "ts" for "./lib/env" import/extensionsAquí está mi archivo .eslintrc
{ "extends": [ "airbnb", "plugin:@typescript-eslint/recommended", "prettier", "prettier/react", "plugin:import/errors", "plugin:import/warnings", "plugin:import/typescript" ], "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint", "prettier", "import"], "settings": { "import/extensions": [".js", ".jsx", ".ts", ".tsx"], "import/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] }, "import/resolver": { "typescript": { "directory": "./tsconfig.json" }, "node": { "extensions": [".js", ".jsx", ".ts", ".tsx"] } } }, "rules": { "@typescript-eslint/indent": [2, 2], "no-console": "off", "import/no-unresolved": [2, { "commonjs": true, "amd": true }], "import/named": 2, "import/namespace": 2, "import/default": 2, "import/export": 2 } }He instalado eslint-plugin-import y eslint-import-resolver-typescript. Y no puedo entender por qué, recibí ese error.
Sé que es tarde, pero si está ampliando las reglas de Airbnb, puede usar eslint-config-airbnb-typescript . Consulte la página del proyecto para obtener las instrucciones más recientes. Aquí está la esencia de esto a partir de marzo de 2022:
Instalar en pc
npm install -D eslint-config-airbnb-typescriptarchivo de configuración ESLint
usando React - agregue 'airbnb-typescript' después de 'airbnb'
extends: [ 'airbnb', + 'airbnb-typescript' ]sin React: agregue 'airbnb-typescript/base' después de 'airbnb-base'
extends: [ 'airbnb-base', + 'airbnb-typescript/base' ] establezca parserOptions.project en la ruta de su tsconfig.json
{ extends: ['airbnb', 'airbnb-typescript'], + parserOptions: { + project: './tsconfig.json' + } }NOTA: antes de agosto de 2021, también deberá realizar las siguientes tareas. Estas instrucciones permanecen aquí solo como referencia histórica. Ya no deberías necesitar hacer esto.
Primero desinstale el anterior y agregue el nuevo:
# uninstall whichever one you're using npm uninstall eslint-config-airbnb npm uninstall eslint-config-airbnb-base # install the typescript one npm install -D eslint-config-airbnb-typescriptLuego actualice su configuración de ESlint, elimine el viejo Airbnb de la sección "extiende" y agregue el nuevo:
extends: ["airbnb-typescript"]Si es como yo, tratando de configurar babel, Javascript heredado y nuevos archivos mecanografiados e intentando habilitar las importaciones sin extensión en *.ts , entonces me encontré con este problema de ESLint (donde también encontré la solución a continuación):
Además de la configuración de rules :
"rules": { "import/extensions": [ "error", "ignorePackages", { "js": "never", "mjs": "never", "jsx": "never", "ts": "never", "tsx": "never" } ] } También necesita una entrada de configuración adicional en su .eslintrc.js :
"settings": { "import/extensions": [".js", ".mjs", ".jsx", ".ts", ".tsx"] },¡Buena suerte!