在VPS上部署TypeScript应用:高级指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

引言:从开发到VPS生产环境



在VPS(虚拟专用服务器)上部署TypeScript应用是任何Web项目生命周期中的关键阶段。与简单的共享主机不同,VPS提供了对环境的完全控制,这对于使用Node.js、Express、NestJS或Next.js的现代TypeScript应用至关重要。



在本文中,我们将探讨高级部署流程:从TypeScript编译到配置具有自动重启、负载均衡和监控的生产环境。您将学习如何将原始代码转变为稳定运行的服务。



1. 准备TypeScript应用投入生产



1.1. 配置构建和配置



第一步是确保您的tsconfig.json针对生产环境进行了优化。以下是推荐的配置:



{  "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"]}


在package.json中添加构建和启动脚本:



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


1.2. 管理环境变量



使用.env文件和dotenv库。为生产环境创建单独的.env.production文件:



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


根据环境加载配置:



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. 配置VPS并部署应用



2.1. 服务器基本配置



购买VPS(推荐Ubuntu 22.04 LTS)后,执行初始配置:



  • 更新软件包: sudo apt update && sudo apt upgrade -y
  • 安装Node.js 20 LTS: curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt install -y nodejs
  • 安装Git: sudo apt install git -y
  • 创建用户: sudo adduser deployer && sudo usermod -aG sudo deployer


2.2. 克隆并构建项目



通过SSH连接到服务器并执行:



# 切换到用户sudo -i -u deployercd ~

# 克隆仓库git clone https://github.com/your-username/your-app.gitcd your-app

# 安装依赖npm ci --only=production

# 构建TypeScriptnpm run build

# 创建生产环境.env文件nano .env.production


2.3. 配置PM2管理进程



PM2是

博客

书籍推荐