Bereitstellung einer TypeScript-Anwendung auf einer VPS: Fortgeschrittenes Handbuch

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Von der Entwicklung zur Produktion auf einer VPS



Die Bereitstellung einer TypeScript-Anwendung auf einer VPS (Virtual Private Server) ist ein entscheidender Schritt im Lebenszyklus jedes Webprojekts. Im Gegensatz zur einfachen Platzierung auf einem Shared-Hosting bietet eine VPS die vollständige Kontrolle über die Umgebung, was für moderne TypeScript-Anwendungen, die mit Node.js, Express, NestJS oder Next.js arbeiten, kritisch ist.



In diesem Artikel betrachten wir den fortgeschrittenen Bereitstellungsprozess: von der Kompilierung von TypeScript bis zur Einrichtung einer Produktionsumgebung mit automatischem Neustart, Lastverteilung und Monitoring. Sie erfahren, wie Sie rohen Code in einen stabil laufenden Dienst verwandeln.



1. Vorbereitung der TypeScript-Anwendung für die Produktion



1.1. Einrichtung des Builds und der Konfiguration



Der erste Schritt besteht darin, sicherzustellen, dass Ihre tsconfig.json für die Produktion optimiert ist. Hier ist die empfohlene Konfiguration:



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


Fügen Sie in package.json Skripte für den Build und den Start hinzu:



{  "scripts": {    "build": "tsc",    "start": "node dist/index.js",    "dev": "ts-node src/index.ts",    "clean": "rm -rf dist"  }}


1.2. Verwaltung von Umgebungsvariablen



Verwenden Sie .env-Dateien mit der Bibliothek dotenv. Erstellen Sie für die Produktion eine separate Datei .env.production:



NODE_ENV=productionPORT=3000DB_HOST=localhostDB_PORT=5432DB_NAME=myapp_prodDB_USER=app_userDB_PASSWORD=secure_password_hereREDIS_URL=redis://localhost:6379


Laden Sie die Konfiguration in Abhängigkeit von der Umgebung:



import dotenv from 'dotenv';import path from 'path';

const envFile = process.env.NODE_ENV === 'production' ? '.env.production' : '.env.development';

dotenv.config({ path: path.resolve(__dirname, `../${envFile}`) });

export const config = { port: parseInt(process.env.PORT || '3000', 10), db: { host: process.env.DB_HOST || 'localhost', port: parseInt(process.env.DB_PORT || '5432', 10), name: process.env.DB_NAME || 'myapp', user: process.env.DB_USER || 'user', password: process.env.DB_PASSWORD || '', }, redis: { url: process.env.REDIS_URL || 'redis://localhost:6379', }, isProduction: process.env.NODE_ENV === 'production',};


2. Einrichtung der VPS und Bereitstellung der Anwendung



2.1. Grundlegende Serverkonfiguration



Nach dem Kauf einer VPS (empfohlen wird Ubuntu 22.04 LTS) führen Sie die Ersteinrichtung durch:



  • Pakete aktualisieren: sudo apt update && sudo apt upgrade -y
  • Node.js 20 LTS installieren: curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt install -y nodejs
  • Git installieren: sudo apt install git -y
  • Benutzer erstellen: sudo adduser deployer && sudo usermod -aG sudo deployer


2.2. Projekt klonen und bauen



Verbinden Sie sich per SSH mit dem Server und führen Sie Folgendes aus:



# Zum Benutzer wechselnsudo -i -u deployercd ~

# Repository klonengit clone https://github.com/your-username/your-app.gitcd your-app

# Abhängigkeiten installierennpm ci --only=production

# TypeScript bauennpm run build

# .env-Datei für die Produktion erstellennano .env.production


2.3. PM2 zur Prozessverwaltung einrichten



PM2 ist ein

Blogs

Buchempfehlungen