Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

4.3K
Vistas
Usando eslint con mecanografiado: no se puede resolver la ruta al módulo

Tengo esta importación en mi archivo app.spec.ts :

 import app from './app';

Lo que causa este error de mecanografiado

 2:17 error Unable to resolve path to module './app' import/no-unresolved

./app.ts existe, pero no he compilado el archivo .ts en un archivo .js. Tan pronto como compilo el archivo .ts en un .js, el error desaparece.

Sin embargo, dado que se supone que eslint funciona con mecanografiado, debería resolver los módulos con .ts y no con .js.

También agregué la información mecanografiada en mi archivo de configuración de eslint :

 "parser": "@typescript-eslint/parser", "parserOptions": { "project": "./tsconfig.json" }

¿Cómo puedo configurar eslint de tal manera que intente resolver módulos con .ts y no con .js?

¡Salud!

EDITAR #1

Contenido de app.ts :

 import bodyParser from 'body-parser'; import express from 'express'; import graphqlHTTP from 'express-graphql'; import { buildSchema } from 'graphql'; const app = express(); const schema = buildSchema(` type Query { hello: String } `); const root = { hello: () => 'Hello world!' }; app.use(bodyParser()); app.use('/graphql', graphqlHTTP({ schema, rootValue: root, graphiql: true, })); export default app;
over 4 years ago · Santiago Trujillo
15 Respuestas
Responde la pregunta

0

Puede configurar la resolución de importación del módulo ESLint agregando este fragmento a su archivo de configuración .eslintrc.json :

 { "settings": { "import/resolver": { "node": { "extensions": [".js", ".jsx", ".ts", ".tsx"] } } }, ... }

Más información sobre resolutores: https://github.com/benmosher/eslint-plugin-import#resolvers .

over 4 years ago · Santiago Trujillo Denunciar

0

para aquellos que usan babel-module simplemente agregue las extensions para que sea algo como esto:

 "babel-module": { "extensions": [".js", ".jsx", ".ts", ".tsx"], "alias": { "app": "./app" } }
over 4 years ago · Santiago Trujillo Denunciar

0

Tuve el mismo problema y solo pude solucionarlo agregando el complemento TypeScript a .eslintrc , usando la opción extends en .eslintrc

 extends: [ "plugin:import/errors", "plugin:import/warnings", "plugin:import/typescript", ],
over 4 years ago · Santiago Trujillo Denunciar

0

Esto lo hace por mí:

.eslintrc.js

 { ... settings: { ... 'import/resolver': { node: { extensions: ['.js', '.jsx', '.ts', '.tsx'], moduleDirectory: ['node_modules', 'src/'], }, }, } }
over 4 years ago · Santiago Trujillo Denunciar

0

Tanto ts como eslint me estaban ladrando, así que tuve que agregar lo siguiente a mi archivo .eslintrc :

 { ... "rules": { .... "import/extensions": "off" }, "settings": { .... "import/resolver": { "node": { "extensions": [".js", ".jsx", ".ts", ".tsx"] } } } }
over 4 years ago · Santiago Trujillo Denunciar

0

En caso de que alguien también necesite admitir el directorio secundario. Por ejemplo, es compatible

  1. src/componentes/entrada => componentes/entrada
  2. src/api/externo/solicitud => externo/solicitud

     "settings": { "import/resolver": { "node": { "paths": ["src", "src/api"], "extensions": [".js", ".jsx", ".ts", ".tsx"] } } }

Este es un ejemplo funcional para eslint ^6.1.0

over 4 years ago · Santiago Trujillo Denunciar

0

Al usar "eslint": "6.8.0" con "typescript": "3.8.3" además de agregar lo siguiente a .eslintrc :

 "settings": { "import/resolver": { "node": { "paths": ["src"], "extensions": [".js", ".jsx", ".ts", ".tsx"], } }, }

También debe agregar esta línea a tsconfig.json en compilerOptions :

 "compilerOptions": { ... // Base directory to resolve non-relative module names. "baseUrl": "src", ... }
over 4 years ago · Santiago Trujillo Denunciar

0

Tuve que agregar la importación mecanografiada a las extensiones y luego desactivar las importaciones en las reglas:

 "extends": { "plugin:import/typescript" }, "rules": { "import/extensions": "off" }
over 4 years ago · Santiago Trujillo Denunciar

0

Mi situación con ts monorepo era que no estaba recibiendo errores de lint en IDE, todos los alias se resolvieron correctamente, pero tan pronto como ejecuté eslint en uno de los proyectos, estaba obteniendo

 error Unable to resolve path to module

Es importante mostrar la ruta eslint a cada uno de los archivos tsconfig de su paquete.

En resumen y para los que tienen TS, alias y monorepo:

  • instalar eslint-import-resolver-typescript
  • agregue a la configuración de eslintrc.js (esto ayudará a ide y eslint a calcular alias y demás):
 'import/resolver': { node: { paths: 'packages/*/src', extensions: ['.js', '.jsx', '.ts', '.tsx'], }, typescript: { alwaysTryTypes: true, project:[ path.resolve(__dirname, '.tsconfig.json'), // root tsconfig path.resolve(__dirname, './packages/projA/tsconfig.json'), path.resolve(__dirname, './packages/projB/tsconfig.json'), /* ...rest of projects path to its tsconfig */ ], },
  • agregar a eslintrc.js se extiende:
 { ..., 'plugin:import/recommended', 'plugin:import/typescript', }
  • agregar a los complementos eslintrc.js :
 plugins: ['@typescript-eslint', ..., 'import'],
  • agregue a eslintrc.js parserOptions (igual que a la configuración) esto ayudará a eslint:
 project: [ path.resolve(__dirname, '.tsconfig.json'), // root tsconfig path.resolve(__dirname, './packages/projA/tsconfig.json'), path.resolve(__dirname, './packages/projB/tsconfig.json'), /* ...rest of projects path to its tsconfig */ ],
over 4 years ago · Santiago Trujillo Denunciar

0

Para mí, simplemente fue instalar eslint-import-resolver-node :

 yarn add -D eslint-import-resolver-node # or npm install eslint-import-resolver-node --save-dev
over 4 years ago · Santiago Trujillo Denunciar

0

Al importar archivos de configuración regional para Angular (por ejemplo import localeFr from '@angular/common/locales/fr'; ), tuve que permitir la extensión .mjs .

Aquí hay un extracto de mi .eslintrc.json :

 ... "extends": [ ... "plugin:import/recommended", "plugin:import/typescript", ... ], "settings": { "import/resolver": { "node": { "extensions": [".ts", ".mjs"] } } }, "rules": { ... } ...
over 4 years ago · Santiago Trujillo Denunciar

0

Si ha actualizado sus archivos .eslintrc y tsconfig.json como se sugiere en las otras respuestas, y aún tiene el problema, reinicie vscode .

over 4 years ago · Santiago Trujillo Denunciar

0

Primero agregue "plugin:import/typescript" en extensiones como a continuación:

 "extends": [ "airbnb-base", "plugin:import/typescript" ],

luego abajo bajo las reglas

 "rules": { "import/extensions": [ "error", "ignorePackages", { "ts": "never" } ] }
over 4 years ago · Santiago Trujillo Denunciar

0

En mi caso, ESLint no pudo resolver los tipos instalados desde DefinitelyTyped ( @type/ packages), por lo que tuve que especificar dónde encontrarlos en .eslintrc de esta manera:

 "import/resolver": { "typescript": {}, "node": { "extensions": [".js", ".ts"], "paths": ["node_modules/", "node_modules/@types"] } },

También agregué "typescript": {} , que es básicamente para usar configuraciones de tsconfig.json y tengo eslint-import-resolver-typescript para que funcione.

over 4 years ago · Santiago Trujillo Denunciar

0

Esta fue la única solución que funcionó para mí.

Primero, necesitas instalar este paquete:

 yarn add -D eslint-import-resolver-typescript

Luego agregue esto a su archivo .eslintrc para que pueda cargar la configuración de alias de su tsconfig.json en ESLint:

 { "settings": { "import/resolver": { "typescript": {} }, }, }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda