使用es6语法开发koa项目

1,062 阅读1分钟

新建项目

脚本

mkdir test-koa
cd test-koa
pnpm init -y

修改type为module

package.json

{
  "name": "test-koa",
  "version": "1.0.0",
  "description": "",
  "main": "src/index.js",
  "type": "module",
  "scripts": {
    ....
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    ...
  },
  "dependencies": {
    ...
  }
}

安装依赖

pnpm i -D @babel/cli @babel/core @babel/node @babel/preset-env @babel/register eslint nodemon log4js cross-env
pnpm i koa koa-router 

新建文件

项目根目录/src/index.js

import Koa from "koa";
import KoaRouter from "koa-router";
import log4js from 'log4js'

// 日志配置
const logger = log4js.getLogger()
logger.level = "debug";

const app = new Koa();
const router = new KoaRouter();

router.get("/", async ctx => {
    logger.debug('debug日志')
    logger.info('info日志')
    ctx.body = "good Index";
});

app.use(router.routes()).use(router.allowedMethods());

app.listen(3000);
logger.info('koa服务启动, 监听端口: 3000')

项目根目录/nodemon.json

{
  "exec": "npm run dev",
  "watch": ["src/*"],
  "ext": "js, html, css, json"
}

这里的exec指定的是package.jsonscripts

最终的package.json

{
  "name": "test-koa",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "build": "babel src --out-dir dist",
    "dev": "babel-node ./src/index.js",
    "watch": "nodemon"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/cli": "^7.17.6",
    "@babel/core": "^7.17.9",
    "@babel/node": "^7.16.8",
    "@babel/preset-env": "^7.16.11",
    "@babel/register": "^7.17.7",
    "cross-env": "^7.0.3",
    "eslint": "^8.13.0",
    "nodemon": "^2.0.15"
  },
  "dependencies": {
    "koa": "^2.13.4",
    "koa-router": "^10.1.1",
    "log4js": "^6.4.5"
  }
}

package.json中命令说明

  • build: 产生 dist 目录,这个目录里面的代码就是我们应用于生产环境的编译代码。
  • dev: 本地开发启动koa服务
  • watch: 本地开发启动koa服务,并在文件内容变动时,重新启动koa服务

watch命令会读取nodemon.json文件中的配置

参考文章

使用 ES6 写 Koa Web 项目