創建 express 的 typescript 環境

本篇文章將從 node 環境創建,安裝相關套件,並配置 typescript,逐步完成一個使用 typescript 的 express 應用。

基礎 express 環境


建立 node 環境

pnpm init

安裝 express 與其他相關套件

pnpm i express

  • express: node.js 的 web framework

pnpm i -D typescript nodemon ts-node

  • nodemon: 修改代碼後,自動重新啟動的開發工具
  • typescript: 編譯 ts 套件
  • ts-node: 可以直接執行 .ts 文件的 node 環境 (開發環境下 nodemon 會使用此套件直接執行 .ts 文件)
  • 安裝 node 與 express 的型別

pnpm i -D @types/node @types/express

  • @types/node: node 的型別
  • @types/express: express 的型別

修改 package.json 中 scripts

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

完整 package.json

{
  "name": "express-with-ts",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "nodemon index.ts",
    "build": "tsc",
    "start": "node ./dist/index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.2"
  },
  "devDependencies": {
    "@types/express": "^4.17.20",
    "@types/node": "^20.8.10",
    "nodemon": "^3.0.1",
    "ts-node": "^10.9.1",
    "typescript": "^5.2.2"
  }
}

基礎 express 代碼


index.ts

import express from 'express';

const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('hello');
});

app.listen(port, () => {
  console.log(`Example app url: http://localhost:${port}`);
});

此時,可以先執行 pnpm dev 看看能不能成功


配置 typescript


創建 typescript 環境

執行 tsc --init 初始化 tsconfig.json,此時會自動產生 tsconfig.json,裡面已經有預設配置

輸出目錄

在 tsconfig.json 中搜尋 outDir 配置項,可以配置輸出目錄,此範例中我們設定為 dist (搭配 package.json 中 script 的 start)

"outDir": "./dist"

延伸閱讀


如此一來,我們就成功建構了能以 ts 開發的 express

在此基礎下,可以去參考我寫的其他文章