在VPS上部署TypeScript应用:从A到Z的逐步指南
\n\n使用TypeScript开发是创建可靠且可扩展的Web应用程序的现代标准。然而,在编写代码之后,问题来了:如何正确地在真实服务器上部署它?在本文中,我们将介绍在VPS(虚拟专用服务器)上部署TypeScript应用的完整流程。您将学习如何配置环境、将TypeScript编译为JavaScript、使用PM2设置自动启动以及通过Nginx配置反向代理。本材料面向已经具备TypeScript和Linux基础知识的开发者。
\n\n1. 准备VPS并安装必要的软件
\n\n第一步是准备服务器。我们将使用Ubuntu 22.04 LTS,因为它是VPS最稳定和最流行的操作系统之一。通过SSH连接到服务器:
\n\nssh root@您的服务器IP\n\n更新包管理器并安装Node.js(推荐LTS版本)以及npm包管理器:
\n\napt update && apt upgrade -y\ncurl -fsSL https://deb.nodesource.com/setup_20.x | bash -\napt install -y nodejs git nginx\n\n检查安装:
\n\nnode -v # v20.x.x\nnpm -v # 10.x.x\n\n现在全局安装TypeScript和PM2(Node.js的进程管理器):
\n\nnpm install -g typescript pm2\n\n重要提示: TypeScript被编译为JavaScript,因此服务器上不一定需要在运行时拥有TypeScript本身——只需在本地或服务器上启动前编译代码即可。然而,全局安装ts-node可能对调试有用。
\n\n2. 编译TypeScript并配置package.json
\n\n假设您的应用程序具有以下结构:
\n\nmy-ts-app/\n├── src/\n│ ├── index.ts\n│ ├── routes.ts\n│ └── utils.ts\n├── package.json\n├── tsconfig.json\n└── .gitignore\n\ntsconfig.json文件应配置为生产环境构建。配置示例:
{\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在package.json中添加构建和启动脚本:
{\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现在,当您运行npm run build时,TypeScript将src文件夹中的文件编译到dist文件夹。一个简单的Express服务器示例(文件src/index.ts):
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('TypeScript应用正在VPS上运行!');\n});\n\napp.listen(PORT, () => {\n console.log(`服务器已在端口 ${PORT} 上启动`);\n});\n\n3. 克隆仓库并在服务器上构建
\n\n将您的应用程序复制到服务器。最方便的方式是通过Git。如果您的代码存储在GitHub/GitLab上,请在服务器上执行:
\n\ncd /var/www\ngit clone https://github.com/您的用户名/my-ts-app.git\ncd my-ts-app\n\n安装依赖并执行构建:
\n\nnpm install\nnpm run build\n\n之后,在dist文件夹中将出现编译后的.js
博客
书籍推荐
推荐阅读