Configurar Node con Typescript
27/1/2024
El archivo de configuración para Typescript.
// tsconfig.json
{
"compilerOptions": {
"module": "NodeNext",
"moduleResolution": "NodeNext",
"target": "ES2020",
"sourceMap": true,
"outDir": "dist"
},
"include": ["src/**/*"]
}
Las opciones module y moduleResolution con la opción NodeNext permite interoperatividad entre los modulos de CommonJS y ESModules.
Se puede cambiar por algún otro, pero de esta forma permite usar librerías más antiguas que siguen usando CommonJS y las nuevas que solo dan soporte a ESModules.
Si da pegas, probar a usar "module":""CommonJS" o "ESModules".
Dependiendo de cual usemos quizas los imports se tengan que escribir con o sin la extensión.
Por otro lado hay que confirar el package.json para trabajar con módulos de ES.
"module": "module"
Por ultimo instalar los paquetes necesarios para desarollar con nodemon. Ahora nodemon acepta los archivos de TS tal cual, no hace falta hacer trucos extraños.
npm i -D @types/node nodemon ts-node typescript
Configuro en el package.json los scripts que quiero usar con el proyecto
"build": "tsc", // Para hacer build del proyecto con JS
"dev": "nodemon src/index.ts" // Para escuchar cambios en desarollo
¡A funcionar!