Al migrar una aplicación a TypeScript, no solo mejoramos la mantenibilidad del código con tipos más fuertes, sino que también minimizamos los errores en tiempo de desarrollo. Este proceso puede resultar un tanto intimidante al principio debido a la necesidad de modificar varias configuraciones. Sin embargo, estos pasos ayudarán a convertir una aplicación JavaScript existente en una aplicación TypeScript eficiente.
¿Qué necesitas para empezar la migración?
Instalación de dependencias:
Asegúrate de tener Node.js y npm instalados en tu entorno de desarrollo.
Ejecuta el siguiente comando en la terminal para instalar TypeScript y otras herramientas necesarias:
Estas dependencias incluyen TypeScript, el loader ts-loader para Webpack y los tipos de Express.
Renombrar archivos a la extensión '.ts':
Cambia la extensión de tus archivos de .js a .ts para que TypeScript pueda compilar el código adecuadamente.
¿Cómo configurar Webpack para TypeScript?
Es necesario ajustar la configuración de Webpack para lograr una integración fluida con TypeScript. Sigue estos pasos:
Configuración básica del entorno y variables: Crear un archivo .env para definir las variables de entorno, lo que te permitirá establecer el modo y el puerto de tu aplicación como se muestra a continuación:
PORT=3005
NODE_ENV=development
Modificar las extensiones en la configuración de Webpack:
Asegúrate de incluir .ts en las extensiones a reconocer por Webpack y crear el loader específico para TypeScript:
const nodeExternals =require('webpack-node-externals');module.exports={// otras configuraciones...module:{rules:[{test:/\.ts$/,use:'ts-loader',exclude:/node_modules/}]},resolve:{extensions:['.ts','.js']},externals:[nodeExternals()]};
¿Cómo configurar el archivo tsconfig.json?
Uno de los archivos más importantes al trabajar con TypeScript es tsconfig.json. Es aquí donde defines la configuración para el compilador TypeScript:
Crear y configurar tsconfig.json:
Este archivo debe contener al menos las siguientes opciones para asegurarte de que TypeScript pueda compilar tu proyecto adecuadamente:
¿Cómo verificar el funcionamiento de la aplicación?
Una vez hayas configurado todo, es importante verificar que la aplicación corra sin problemas:
Pruebas en modo desarrollo:
Ejecuta el proyecto en modo desarrollo con el comando:
npm run dev
Accede a localhost:3005 para asegurarte de que la aplicación responde adecuadamente.
Construir para producción:
Para preparar la aplicación para producción, ejecuta:
npm run build
Revisa que la carpeta dist contenga los archivos correctamente optimizados para producción.
Con estas configuraciones y pasos, tu aplicación debería estar correctamente migrada a TypeScript, aprovechando todas las ventajas que esta herramienta ofrece en cuanto a seguridad y escalabilidad. ¡Ánimo y a seguir mejorando tus habilidades de desarrollo!
Cambiamos la extensión de src/index.js a index.ts:
Adaptamos Index a typescript:
import*as expressfrom'express';import{Request,Response}from'express';const app =express();const port =3000;app.get('/',(req:Request,res:Response)=>{ res.send('Hello Typescript')});app.listen(port,()=>{console.log(`App listening on port: ${port}`);})
Creamos en la raiz el archivo .env (variables de entorno).
.env :
POST=3005NODE_ENV=development
En Webpack.config.js
const path =require('path');// path: la ubicacion del proyectoconstNODE_ENV= process.env.NODE_ENV;constPORT= process.env.PORT;...module.exports={name:'express-server',// ACTUALIZAMOS LA EXTENSIÓN DE INDEXentry:'./src/index.ts',target:'node',// AÑADIMOS: modemode:NODE_ENV,// en resolve:extensions:['.ts','.js']// en rules añadimos{test:/\.ts$/,use:['ts-loader',]}
De que nos sirve la libreria "webpack-node-externals" ? Cual es su funcion ? No lo entendi muy bien.
Webpack te permite definir externos: módulos que no deben agruparse. Al empaquetar con Webpack para el backend, generalmente no deseamos empaquetar las dependencias en node_modules. Esta biblioteca crea una función externa que ignora node_modules al empaquetar en Webpack.
Nunca pares de aprender!
Por si tienen problemas con la configuración uwu
Si no deseo usar tyscript, ¿Que inconvenientes podria llegar a tener?
Ninguno. El profe lo usa por gusto. Typescript simplemente es un lenguaje de programaciòn basado en javascript y le agrega cosas màs "formales" al lenguaje.