typescript版node环境搭建

2019年05月19日Web前端Web后端0

尝试下在node端搭建typescript的环境,以koa2为demo尝试。

项目搭建

koa2项目初始化

demo建立在koa2之上,首先先初始化下项目:

koa2 项目名称
cd 项目名称
npm install

到这,koa2的一个项目就初始化完成了,下面就开始ts化了。

增加typescript

首先时依赖的安装:

npm i typescript ts-node --save

ts-node可以直接运行ts版的node程序,而不用先将ts转成js再启动服务。

为了demo的简单,我是删除了routes中的user.js文件(app.js中也要删除对该文件的引用),再将所有js后缀改成了ts后缀,此时会报onerror错误,只需将onerror换个名字即可,比如onError。 如果使用vscode的话,他会提示在ts中使用require有问题,需要安装个依赖,(加引号是在powershell有中安装带@的问题,cmd可以无视)

npm i "@types/node"

统计请求时间的中间件函数,因为类型问题,也需要微调下,

app.use(async (ctx, next) => {
    const start: any = newDate()
    await next()
    const end: any = newDate()
    const ms = end - start
    console.log(`${ctx.method}${ctx.url} - ${ms}ms`)
});

到这,最简单的环境已经ok了,下面配置下启动命令就可以看效果了。

配置命令

在package.json中script加入:

"watch": "ts-node bin/www",

npm run watch,访问http://127.0.0.1:3000/就可以了。

当然,为了开发便捷,热更新也是需要的,增加以下命令:

"watch-server": "nodemon --watch routes/**/* -e ts,tsx --exec ts-node bin/www"

代码的热更新,实时编译,服务器重启等问题就解决了,下面就可以开始愉快地编码了。

总结

纯node或者其他node库中使用也是类似的,本篇详细demo请查看:github