VSCode no ofrece sugerencias de importación correctamente para un paquete que se vinculó localmente (usando el enlace npm).
Normalmente, cuando quiero usar una clase de un paquete, escribo Foo y presiono el tabulador para agregar automáticamente la importación para myModule/Foo.js . Pero en mi configuración actual, no recibo ninguna sugerencia de importación para myModule.
Mi estructura de carpetas se ve así:
project |- server (node package) | |- node_modules/ | |- src/ | |- package.json |- myModule (node package) |- src/ |- package.jsonTodos los paquetes son del tipo de módulo (importación/exportación es6).
"type": "module"El paquete myModule usa una exportación de ruta secundaria para ocultar la carpeta src:
"exports": { "./*": "./src/*" } Luego npm link en project/myModule , seguido del npm link myModule en project/server . Luego puedo usar myModule en server/src/index.js de la siguiente manera:
import Foo from "myModule/Foo.js" import Four from "myModule/Bar/Four.js" En este punto, Node está feliz. Desafortunadamente, VSCode no lo es. Cuando uso Foo o Bar y uso la sugerencia de IntelliSense para agregar automáticamente la importación, obtengo el siguiente resultado:
../../myModule/src/Foo.js ) si elimino la exportación de subruta de myModule.jsconfig.json con un alias de ruta como: "myModule/*": ["./node_modules/myModule/src/*"] o "myModule/*": ["./node_modules/myModule/*"] pero desafortunadamente eso no hizo la diferencia.¿Qué puedo hacer para tener sugerencias de importación que funcionen nuevamente en VSCode?
Colocar un jsconfig.json en project/ con "myModule/*": ["./myModule/src/*"] como un alias de ruta ha vuelto a hacer feliz a VSCode.
Esto puede presentar otros desafíos más adelante, ya que ahora estoy especificando este alias para cada paquete en project/ . Otras sugerencias siguen siendo muy bienvenidas, así como una explicación de por qué jsconfig.json en project/server/ no funcionaba como se esperaba.