Skip to content

koa2创建ts项目

一、项目初始化

bash
npm init -y

二、修改package.json 文件

json
{
  "name": "recipe-backend",
  "version": "1.0.0",
  "description": "",
  "main": "./src/app.ts",
  "scripts": {
    "dev": "tsnd --respawn src/app.ts",
    "build": "npm-run-all resetFolder compile",
    "compile": "tsc",
    "resetFolder": "rimraf dist/*"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@types/jsonwebtoken": "^9.0.5",
    "@types/koa-router": "^7.4.8",
    "@types/nodemailer": "^6.4.14",
    "dotenv": "^16.3.1",
    "jsonwebtoken": "^9.0.2",
    "koa": "^2.14.2",
    "koa-bodyparser": "^4.4.1",
    "koa-connect": "^2.1.0",
    "koa-cors": "^0.0.16",
    "koa-generic-session": "^2.3.1",
    "koa-passport": "^6.0.0",
    "koa-router": "^12.0.1",
    "koa-socket": "^4.4.0",
    "nodemailer": "^6.9.7",
    "nodemon": "^3.0.2",
    "passport-local": "^1.0.0",
    "string-random": "^0.1.3",
    "ts-node": "^10.9.1"
  },
  "devDependencies": {
    "@types/koa": "^2.13.12",
    "@types/koa-bodyparser": "^4.3.12",
    "@types/koa-cors": "^0.0.6",
    "npm-run-all": "^4.1.5",
    "ts-node-dev": "^2.0.0",
    "typescript": "^5.3.2"
  }
}

三、安装依赖

bash
npm install

四、创建tsconfig.json文件

json
{
	"compilerOptions": {
		"target": "esnext", // 目标语言版本
		"module": "commonjs", // 指定生成代码的模板标准
		"sourceMap": true,
		"outDir": "./dist",
		"rootDir": "./src", // 指定输出目录, 默认是dist文件夹
		"strict": true,
		"esModuleInterop": true,
		"allowSyntheticDefaultImports": true,
		"skipLibCheck": true,
		"forceConsistentCasingInFileNames": true
	},
	// 需要编译的的文件和目录
	"include": ["src"],
	"exclude": ["node_modules", "dist", "public"]
}

五、编写app.ts文件

typescript
/*
 * @Author: 芝士雪豹
 * @Date: 2023-12-03 20:11:00
 * @LastEditors: your name
 * @LastEditTime: 2024-03-06 17:07:21
 * @Description: 
 * @FilePath: /recipe-backend/src/app.ts
 */
import Koa, { DefaultContext, DefaultState, Context } from 'koa'
import router from './route/index'
import dotenv from 'dotenv'
import bodyParser from 'koa-bodyparser';


dotenv.config()
const { PORT  } = process.env

const app: Koa = new Koa()
app.use(bodyParser()).use(router.routes()).use(router.allowedMethods());

app.use(async (ctx: Context,next) => {
	next();
})
// http请求端口监听
app.listen(PORT, () => {

	console.log(`application is running on port ${PORT}`);
})



export  {app};
最近更新