首先创建一个express项目
- 初始化项目
mkdir myapp cd myapp npm init (都用默认值)
- 添加依赖包
npm install express nodemon
- 修改 package.json
{ "name": "myapp", "version": "1.0.0", "description": "", "main": "src/index.js", "scripts": { "start": "node src/index.js", "dev": "nodemon src/index.js" }, "author": "", "license": "ISC", "dependencies": { "express": "^4.18.2", "nodemon": "^3.0.3" } }
- 修改工程脚本 src/index.js
const express = require('express'); const app = express(); const port = process.env.PORT || 3000; app.get("/", (req, res, next) => { res.send("Express Server"); }); app.listen(port, () => { console.log(`[server]: Server is running at http://localhost:${port}`); });
基于javascript的express创建好了,可以启动“npm run dev”验证一下。
express + typescript 改造
- 添加typescript使用的包
npm install -D typescript @types/express @types/node npm install -D ts-node
- 生成 tsconfig.json
npx tsc --init
命令运行后,会生成 tsconfig.json 文件,我们添加一下 “outDir”: “./dist”, 修改后内容如下:
{ "compilerOptions": { "target": "es2016", "module": "commonjs", "outDir": "./dist", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true } }
- 将 src/index.js 改名成 src/index.ts,内容改成typescript脚本
import express, { Express, Request, Response } from "express"; const app: Express = express(); const port = process.env.PORT || 3000; app.get("/", (req: Request, res: Response) => { res.send("Express + TypeScript Server"); }); app.listen(port, () => { console.log(`[server]: Server is running at http://localhost:${port}`); });
- 修改 package.json 的 scripts,内容如下
{ "name": "myapp", "version": "1.0.0", "description": "", "main": "dist/index.js", "scripts": { "build": "npx tsc", "start": "node dist/index.js", "dev": "nodemon src/index.ts" }, "author": "", "license": "ISC", "dependencies": { "express": "^4.18.2", "nodemon": "^3.0.3" }, "devDependencies": { "@types/express": "^4.17.21", "@types/node": "^20.11.5", "ts-node": "^10.9.2", "typescript": "^5.3.3" } }
到这里,express + typescript 的工程改造就完成了,可以使用 “npm run dev” 命令启动工程进行测试。