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};