Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

110
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!