在VPS上部署TypeScript应用:从A到Z的逐步指南

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

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

开始课程

引言:为什么VPS是您的TypeScript项目的理想之选?



您用TypeScript编写了一个很棒的应用程序——无论是Express服务器、Next.js网站还是NestJS API。本地运行完美,但现在是时候向世界展示您的项目了。许多新手害怕部署阶段,认为它复杂且令人困惑。实际上,只要弄清楚这个过程一次,您就能在15-20分钟内部署任何TypeScript项目。



在本指南中,我们将介绍在VPS(虚拟专用服务器)上部署TypeScript应用的完整流程——从服务器准备到域名配置和HTTPS。本文主要针对Node.js生态系统,因为TypeScript最常与它一起使用。



您将学到什么:

  • 如何准备VPS(Ubuntu 22.04)
  • 如何配置Node.js、TypeScript和进程管理器PM2
  • 如何以生产模式构建(编译)TypeScript
  • 如何配置Nginx作为反向代理
  • 如何通过Let's Encrypt免费连接SSL证书


1. 准备VPS并安装所需环境



1.1 服务器初始配置



假设您已经租用了一台运行Ubuntu 22.04的VPS(例如,来自DigitalOcean、Timeweb或Reg.ru)。首先通过SSH连接到服务器:



ssh root@您的服务器IP


创建一个单独的用户(比使用root更安全):



adduser deployerusermod -aG sudo deployersu - deployer


1.2 安装Node.js和npm



对于TypeScript应用,我们需要Node.js版本18或20(LTS)。使用官方的NodeSource PPA:



curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt-get install -y nodejs


检查安装:



node -vnpm -v


1.3 全局安装TypeScript(可选)



虽然TypeScript通常作为项目的本地依赖项,但为了快速检查编译,可以全局安装它:



sudo npm install -g typescript


1.4 克隆您的项目



将GitHub/GitLab上的仓库复制到服务器:



git clone https://github.com/您的用户名/您的项目.gitcd 您的项目


安装依赖项:



npm install


2. 构建TypeScript并配置PM2



2.1 将TypeScript编译为JavaScript



您的package.json中应该有一个构建脚本。通常看起来像这样:



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


运行构建:



npm run build


执行后,编译后的JavaScript代码将出现在dist文件夹中。如果您使用的是Next.js,构建命令将是npm run build(Next.js自行编译TypeScript)。



2.2 安装和配置PM2



PM2是一个进程管理器,它保持您的应用程序运行,在崩溃时重新启动它,并管理日志。安装:



sudo npm install -g pm2


通过PM2启动应用程序(指定编译后文件的路径):



pm2 start dist/index.js --name "my-typescript-app"


如果您使用的是Next.js,命令会有所不同:



pm2 start npm --name "next-app" -- start


配置PM2在服务器重启时自动启动:



pm2 startup systemdpm2 save


现在您的应用程序在本地端口(例如,3000)上运行。让我们让它可以通过域名访问。



3. 配置Nginx作为反向代理



3.1 安装Nginx




                
                

博客

书籍推荐