Despliegue de una aplicación TypeScript en VPS: guía paso a paso de la A a la Z

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Despliegue de una aplicación TypeScript en VPS: guía paso a paso de la A a la Z

\n\n

Desarrollar en TypeScript es el estándar moderno para crear aplicaciones web robustas y escalables. Sin embargo, después de escribir el código surge la pregunta: ¿cómo implementarlo correctamente en un servidor real? En este artículo, analizaremos el ciclo completo de despliegue de una aplicación TypeScript en un VPS (Servidor Privado Virtual). Aprenderá a configurar el entorno, compilar TypeScript a JavaScript, organizar el inicio automático con PM2 y configurar un proxy inverso a través de Nginx. El material está dirigido a desarrolladores que ya tienen un conocimiento básico de TypeScript y Linux.

\n\n

1. Preparación del VPS e instalación del software necesario

\n\n

El primer paso es preparar el servidor. Usaremos Ubuntu 22.04 LTS, ya que es uno de los sistemas operativos más estables y populares para VPS. Conéctese al servidor a través de SSH:

\n\n
ssh root@su-ip-del-servidor
\n\n

Actualice el gestor de paquetes e instale Node.js (se recomienda la versión LTS) junto con el gestor de paquetes npm:

\n\n
apt update && apt upgrade -y\ncurl -fsSL https://deb.nodesource.com/setup_20.x | bash -\napt install -y nodejs git nginx
\n\n

Verifique la instalación:

\n\n
node -v   # v20.x.x\nnpm -v    # 10.x.x
\n\n

Ahora instale globalmente TypeScript y PM2 (un administrador de procesos para Node.js):

\n\n
npm install -g typescript pm2
\n\n

Importante: TypeScript se compila a JavaScript, por lo que no es necesario tener TypeScript en tiempo de ejecución en el servidor; basta con compilar el código localmente o en el servidor antes de ejecutarlo. Sin embargo, la instalación global de ts-node puede ser útil para la depuración.

\n\n

2. Compilación de TypeScript y configuración de package.json

\n\n

Supongamos que su aplicación tiene la siguiente estructura:

\n\n
my-ts-app/\n├── src/\n│   ├── index.ts\n│   ├── routes.ts\n│   └── utils.ts\n├── package.json\n├── tsconfig.json\n└── .gitignore
\n\n

El archivo tsconfig.json debe estar configurado para la compilación de producción. Ejemplo de configuración:

\n\n
{\n  "compilerOptions": {\n    "target": "ES2020",\n    "module": "commonjs",\n    "outDir": "./dist",\n    "rootDir": "./src",\n    "strict": true,\n    "esModuleInterop": true,\n    "skipLibCheck": true,\n    "forceConsistentCasingInFileNames": true,\n    "resolveJsonModule": true\n  },\n  "include": ["src/**/*"],\n  "exclude": ["node_modules", "dist", "tests"]\n}
\n\n

Agregue scripts en package.json para compilar y ejecutar:

\n\n
{\n  "name": "my-ts-app",\n  "version": "1.0.0",\n  "scripts": {\n    "build": "tsc",\n    "start": "node dist/index.js",\n    "dev": "ts-node src/index.ts"\n  },\n  "dependencies": {\n    "express": "^4.18.2"\n  },\n  "devDependencies": {\n    "typescript": "^5.3.3",\n    "@types/express": "^4.17.21",\n    "ts-node": "^10.9.2"\n  }\n}
\n\n

Ahora, cuando ejecute npm run build, TypeScript compila los archivos de la carpeta src a la carpeta dist. Ejemplo de un servidor simple en Express (archivo src/index.ts):

\n\n
import express, { Request, Response } from 'express';\n\nconst app = express();\nconst PORT = process.env.PORT || 3000;\n\napp.get('/', (req: Request, res: Response) => {\n  res.send('¡La aplicación TypeScript funciona en VPS!');\n});\n\napp.listen(PORT, () => {\n  console.log(`Servidor iniciado en el puerto ${PORT}`);\n});
\n\n

3. Clonación del repositorio y compilación en el servidor

\n\n

Copie su aplicación al servidor. La forma más cómoda es a través de Git. Si su código está en GitHub/GitLab, ejecute en el servidor:

\n\n
cd /var/www\ngit clone https://github.com/su-usuario/my-ts-app.git\ncd my-ts-app
\n\n

Instale las dependencias y realice la compilación:

\n\n
npm install\nnpm run build
\n\n

Después de esto, en la carpeta dist aparecerán los archivos .js

Blogs

Book Recommendations