Implantação de aplicação TypeScript em VPS: guia passo a passo do A ao Z

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Implantação de aplicação TypeScript em VPS: guia passo a passo do A ao Z

\n\n

Desenvolver em TypeScript é o padrão moderno para criar aplicações web confiáveis e escaláveis. No entanto, após escrever o código, surge a questão: como implantá-lo corretamente em um servidor real? Neste artigo, abordaremos o ciclo completo de implantação de uma aplicação TypeScript em VPS (Virtual Private Server). Você aprenderá como configurar o ambiente, compilar TypeScript para JavaScript, organizar a inicialização automática com PM2 e configurar um proxy reverso com Nginx. O material é voltado para desenvolvedores que já possuem conhecimento básico de TypeScript e Linux.

\n\n

1. Preparação do VPS e instalação do software necessário

\n\n

O primeiro passo é preparar o servidor. Usaremos Ubuntu 22.04 LTS, pois é um dos sistemas operacionais mais estáveis e populares para VPS. Conecte-se ao servidor via SSH:

\n\n
ssh root@seu-ip-do-servidor
\n\n

Atualize o gerenciador de pacotes e instale o Node.js (recomenda-se a versão LTS) junto com o gerenciador de pacotes 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 a instalação:

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

Agora instale globalmente o TypeScript e o PM2 (gerenciador de processos para Node.js):

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

Importante: O TypeScript é compilado para JavaScript, portanto, não é necessário ter o TypeScript em tempo de execução no servidor — basta compilar o código localmente ou no servidor antes de executar. No entanto, a instalação global do ts-node pode ser útil para depuração.

\n\n

2. Compilação do TypeScript e configuração do package.json

\n\n

Suponha que sua aplicação tenha a seguinte estrutura:

\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

O arquivo tsconfig.json deve ser configurado para a build de produção. Exemplo de configuração:

\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

Adicione scripts de build e execução no package.json:

\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

Agora, ao executar npm run build, o TypeScript compila os arquivos da pasta src para a pasta dist. Exemplo de um servidor simples com Express (arquivo 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('Aplicação TypeScript rodando no VPS!');\n});\n\napp.listen(PORT, () => {\n  console.log(`Servidor rodando na porta ${PORT}`);\n});
\n\n

3. Clonagem do repositório e build no servidor

\n\n

Copie sua aplicação para o servidor. A maneira mais conveniente é via Git. Se seu código estiver no GitHub/GitLab, execute no servidor:

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

Instale as dependências e execute o build:

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

Após isso, os arquivos .js compilados aparecerão na pasta dist

Blogs

Book Recommendations