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

121
Vistas
Eslint no respeta las rutas jsconfig

Tengo mi proyecto express.js en monorepo. Quiero agregarle un alias de ruta personalizado. La estructura del directorio es:

 ./ server/ ----> jsconfig.json ----> .eslintrc.js ----> src/ --------> index.js --------> modules/auth -------------> auth.controller.js

jsconfig.json

 { "compilerOptions": { "module": "ES6", "baseUrl": "./", "paths": { "@modules/*": [ "src/modules/*" ] } }, "exclude": ["node_modules"] }

.eslintrc.js

 module.exports = { env: { es2021: true, node: true, }, extends: [ 'airbnb-base', ], parserOptions: { ecmaVersion: 12, sourceType: 'module', }, rules: { 'no-console': 'error', 'no-debugger': 'error', }, settings: { 'import/resolver': { alias: { map: [ ['@modules/*', 'src/modules/*'], ], extensions: ['.js', '.json'], }, }, }, };

Simplemente, intenté importar el controlador de autenticación en mi archivo index.js.

 import authRoutes from '@modules/auth/auth.routes';

pero aparece el siguiente error: Unable to resolve path to module '@modules/auth/auth.controller' .eslint import/no-unresolved

por favor, no sugiera desactivar la regla. Ya probé eslint-import-resolver-jsconfig , pero obtuve Cannot resolve jsConfig, SyntaxError } on 150 .

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Debido a que usé monorepo, hubo un problema con ESLint o incluso con pelusa. Entonces ahora solo tengo un proyecto por repositorio y:

  1. Se agregaron rutas personalizadas en jsconfig.json :
 "paths": { "@modules/*": [ "./src/modules/*" ] }
  1. eslint-import-resolver-jsconfig y agregué la siguiente configuración a eslint.json :
 "extends": [ "airbnb-base", "eslint:recommended" ], "plugins": ["import"], "settings": { "import/resolver": { "jsconfig": { "config": "jsconfig.json" } } }
  1. Instalé el complemento de Babel babel-plugin-module-resolver y agregué la siguiente configuración a .babelrc :
 "plugins": [ [ "module-resolver", { "alias": { "@modules": "./src/modules" } } ] ]

Pero, de nuevo: esto solo funciona si tiene un proyecto por repositorio y todos sus archivos de configuración ( .*rc , package.json , etc.) están en el nivel raíz.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Para lograr lo anterior, uso el paquete module-alias .

Después de instalarlo como una dependencia normal, npm i --save module-alias , agregue lo siguiente a su package.json :

 "_moduleAliases": { "@modules": "./src/modules" }

Básicamente, eso definirá las asignaciones para todos los alias que desee definir.

Para que funcione, ahora deberá importar lo siguiente en la parte superior de su aplicación en index.js :

 require("module-alias/register"); // If using commonJS // or import "module-alias/register"; // If transpiling es6

Ya está todo listo y debería poder importar sus archivos con rutas absolutas como:

 const authRoutes = require("@modules/auth/auth.routes") // or import authRoutes from "@modules/auth/auth.routes";

En caso de que eslint aún marque la ruta sin resolver, es posible que deba actualizar su jsconfig.json o tsconfig.json para que contenga lo siguiente:

 "paths": { "@modules/*": ["src/modules/*"] }

Puede encontrar la documentación del paquete y leer más sobre su uso aquí .

about 4 years ago · Juan Pablo Isaza 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