欢迎来到代码驿站!

NodeJS

当前位置:首页 > 脚本语言 > NodeJS

使用nodejs + koa + typescript 集成和自动重启的问题

时间:2022-08-21 09:59:42|栏目:NodeJS|点击:

版本说明

Node.js: 16.13.1

创建项目

创建如下目录结构

project
├── src
│   └── server.ts
├── package.json
└── tsconfig.json

package.json 可以使用 yarn init -y 生成
tsconfig.json 可以使用 tsc --init 生成(需要全局或在项目中安装 typescript 包才可以使用 tsc 命令)

安装依赖

注意:

  • @tsconfig/node16 包需要根据 Node.js 的版本变化,我电脑上安装的是 16.x.x 的版本,所以用的是 @tsconfig/node16,具体看 tsconfig/bases 中的说明,当然也可以完全不用安装这个包,这个包优点是公用性和主流推荐配置
  • typescript 如果已经全局安装过了,就从下面的命令中移除它
  • concurrently 是一个并发执行多个命令的工具包
  • nodemon 是一个监听文件变化自动重启程序的工具包
yarn add koa
yarn add typescript @tsconfig/node16 @types/node @types/koa concurrently nodemon -D

填充内容

src/server.ts

import Koa from 'koa';

const server: Koa = new Koa();
const port: number = 3000;

server.use((ctx: Koa.DefaultContext) => {
    ctx.body = 'hi koa';
});

server.listen(port, () => {
    console.log(`Node.js v${process.versions.node}`);
});

tsconfig.json

注意:extends 字段的值根据你安装的包名 @tsconfig/node** 替换

{
  "extends": "@tsconfig/node16/tsconfig.json",
  "compilerOptions": {
    "baseUrl": ".",
    "rootDir": "src",
    "outDir": "dist",
    "noImplicitAny": true,
  },
  "include": [
    "src/**/*"
  ]
}

package.json

"scripts": {
  "build-ts": "tsc",
  "build": "yarn build-ts",
  "debug": "yarn build && yarn watch-debug",
  "serve-debug": "nodemon --inspect dist/server.js",
  "serve": "node dist/server.js",
  "start": "yarn serve",
  "watch-debug": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold,green.bold\" \"npm:watch-ts\" \"npm:serve-debug\"",
  "watch-node": "nodemon dist/server.js",
  "watch-ts": "tsc -w",
  "watch": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold,green.bold\" \"npm:watch-ts\" \"npm:watch-node\""
}

运行

我们的所有源码在 src 目录下,tsc 编译后的 js 文件在 dist 目录下,这是在 tsconfig.json 文件中指定的路径

本地开发:如果没有 dist 目录需要先执行 yarn build 去编译生成,然后再执行 yarn watch

部署生产:顺序执行 yarn buildyarn serveyarn start(serve 和 start 是相同的命令)

参考资料

microsoft/TypeScript-Node-Starter

上一篇:Node.js中HTTP模块与事件模块详解

栏    目:NodeJS

下一篇:Node.js基础入门之使用方式及模块化详解

本文标题:使用nodejs + koa + typescript 集成和自动重启的问题

本文地址:http://www.codeinn.net/misctech/211452.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有