在VPS上部署TypeScript应用:分步指南

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

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

开始课程

引言:为什么在VPS上部署TypeScript应用是正确的选择

得益于严格的类型检查和更好的代码可读性,TypeScript开发已成为行业标准。然而开发完成后,一个关键问题随之而来:如何正确地将应用部署到生产服务器?在VPS(虚拟专用服务器)上部署TypeScript应用不仅仅是复制文件,而是一个包含将TypeScript编译为JavaScript、配置环境、管理进程和确保安全性的完整流程。

本文将详细拆解在VPS上部署TypeScript应用的分步算法。您将学习如何准备服务器、配置构建、使用PM2进程管理器运行应用以及通过Nginx使其可访问。本文面向已拥有基础TypeScript应用(例如Express.js或NestJS)并希望将其部署到远程服务器的开发者。



第一步:准备VPS并安装必要软件

在VPS上部署TypeScript应用的第一阶段是配置服务器本身。我们将使用Ubuntu 22.04 LTS,这是最稳定、最流行的Web服务器操作系统。

通过SSH连接到服务器后,运行以下命令:

# 更新软件包sudo apt update && sudo apt upgrade -y

# 安装Node.js (版本18或更高)curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -sudo apt install -y nodejs

# 检查版本node -vnpm -v

# 安装Gitsudo apt install git -y

# 安装PM2进程管理器npm install -g pm2

注意:TypeScript无需在服务器上全局安装。它仅用于项目构建阶段,该阶段可在本地机器上执行,也可通过CI/CD脚本在服务器上执行。

此外,建议设置基本防火墙:

sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enable


第二步:克隆项目并构建TypeScript

现在服务器已准备就绪,让我们传输TypeScript应用代码。最常见的方法是通过Git克隆仓库。

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

# 安装依赖npm install

# 将TypeScript编译为JavaScriptnpx tsc

重要提示:请确保在tsconfig.json文件中正确指定了输出文件夹,通常为dist或build:

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

编译成功后,可供运行的JavaScript代码将出现在dist文件夹中。检查应用是否正确启动:

node dist/index.js


第三步:通过PM2运行并配置自动启动

简单的node启动方式不适合生产环境——如果SSH连接中断,进程将停止。为了在VPS上部署TypeScript应用,我们使用PM2,它提供:

  • 崩溃后自动重启
  • 错误和标准输出日志记录
  • 集群模式(在多个CPU核心上运行)

在项目根目录创建ecosystem.config.js文件:

module.exports = {  apps: [{    name: 'my-ts-app',    script: './dist/index.js',    instances: 'max',    exec_mode: 'cluster',    env: {      NODE_ENV: 'production',      PORT: 3000    },    error_file: './logs/err.log',    out_file: './logs/out.log',    merge_logs: true  }]};

通过PM2启动应用:

pm2 start ecosystem.config.jspm2 savepm2                

博客

书籍推荐