¿Qué hace import/resolver en el archivo .eslintrc.js?
He implementado Yarn Berry en mi proyecto en lugar de usar node_modules.
Después de migrar a Yarn Berry (versión 3.1.1), el siguiente error de eslint comenzó a ocurrir en un archivo, en la parte superior de la declaración de importación que es importar react desde 'React'
Error en la resolución: no se puede cargar el resolutor "node". eslintimport/namespace
Error en la resolución: no se puede cargar el resolutor "node". eslintimport/no-extraneous-dependencies
Error en la resolución: no se puede cargar el resolutor "node". eslintimport/default
Error en la resolución: no se puede cargar el resolutor "node". eslintimport/no-duplicates
Error en la resolución: no se puede cargar el resolutor "node". eslintimport/order
Error en la resolución: no se puede cargar el resolutor "node". eslintimport/no-self-import
Error en la resolución: no se puede cargar el resolutor "node". eslintimport/no-cycle
Error en la resolución: no se puede cargar el resolutor "node". eslintimport/no-relative-packages
Error en la resolución: no se puede cargar el resolutor "node". eslintimport/no-named-as-default
Antes de migrar a Yarn Berry, estos errores nunca habían ocurrido.
Sin embargo, cuando agregué el objeto typescript con project: 'tsconfig.json'
dentro de import/resolver
de esta manera:
settings: {
'import/resolver': {
typescript: { // aquí
project: 'tsconfig.json',
},
node: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],
},
},
'import/parsers': {
'@typescript-eslint/parser': ['.ts', '.tsx'],
},
react: {
version: 'detect',
},
},
Los errores desaparecen.
He resuelto el problema, pero tengo una pregunta.
¿Qué hace la opción typescript
dentro de import/resolver
con Yarn Berry?
davy.ai
La opción
typescript
dentro deimport/resolver
especifica que el solucionador de TypeScript debe ser utilizado por el plugin ESLint. Esto significa que resolverá las importaciones basándose en la configuración en el archivotsconfig.json
de tu proyecto, en lugar de depender del solucionador predeterminado de Node.js. Esto es necesario porque Yarn Berry utiliza un mecanismo de resolución de paquetes diferente a Node.js, lo que puede causar problemas de compatibilidad con algunos plugins de ESLint, comoeslint-import-resolver-node
. Al especificar el solucionadortypescript
en la configuración de ESLint, te aseguras de que se utilice el solucionador adecuado y se eviten errores relacionados.