javascript - VS Code muestra módulo no encontrado aunque la compilación de WebPack funcione
Mi VS Code dice que no puede encontrar una importación aunque mi compilación de WebPack todavía funcione.
Aquí está la importación...
import * as tf from '@tensorflow/tfjs';
y el mensaje de VS Code:
No se puede encontrar el módulo '@tensorflow/tfjs'. ¿Quiso decir que se debe configurar la opción 'moduleResolution' a 'node', o agregar alias a la opción 'paths'?
He leído algo sobre los alias de rutas que se pueden configurar en el tsconfig.json para acortar rutas largas a módulos. Pero si esto es un alias de ruta y no lo tengo configurado en mi tsconfig.json, ¿cómo sabe WebPack dónde se encuentra el módulo?
También leí que la convención para los alias de rutas es empezar con un "@", pero la carpeta en el propio "node_modules" se llama "@tensorflow", así que no sé si realmente es un alias de ruta y, si no lo es, tal vez WebPack mágicamente sabe que tiene que buscar en "node_modules" este módulo.
Como puedes ver, estoy realmente confundido sobre esto y estaría muy agradecido si alguien pudiera aclarármelo y explicarme qué debo hacer para que VS Code deje de quejarse sobre la importación.
Respuesta #1
Encontré la solución por mi cuenta.
Solo encontré información sobre definir los alias en el tsconfig.json explícitamente en la opción "paths", pero esto no podría ser la respuesta a mi problema porque en mis otros proyectos de Angular no hay nada definido así, aunque estoy usando importaciones de @Angular allí mucho sin este problema.
Pero luego encontré esto en mi proyecto de Angular "moduleResolution": "node".
Como se indica en otra documentación de TypeScript:
Sin embargo, la resolución de un nombre de módulo no relativo se realiza de manera diferente. Node buscará tus módulos en carpetas especiales llamadas node_modules.
Y he aquí, funciona. Sí, probablemente podría haber intentado esto antes, ya que está escrito en el mensaje de VS Code de mi pregunta, pero pensé que esto era algo solo para proyectos específicos de node.js y no leí sobre esto en ningún lado.