前言
最近在写一个博客的项目,前端用的
vue+typescript+element-ui ,后台则选择了
koa2+typescript+mongoDB 的组合。写这篇博客的目的也是在写后台的过程遇到一些问题,查了很多资料才解决。于是权当总结,亦是记录,可以给别人做一个完整的参考。基本信息
这里列出来的是会用到的一些配置信息,毕竟一直都在更新,可能这里说的以后某个版本就不支持了。
"nodemon" : "^1.18.3",
"ts-node" : "^7.0.1",
"typescript" : "^3.1.1"
"node" : "9.0.0"问题描述
这次遇到的问题其实都和typescript有关。koa2已经出来很久了,开发基本成熟,但是这次找资料的时候鲜有发现使用typescript开发的,即便有,也都很简单,而且没法解决我的问题。
那言归正传,使用ts开发koa,因为不涉及webpack打包编译,所以就会遇到几个问题:
编译
实时刷新,重启服务器
debugger
这些确实是初期很困扰我的地方,使用node开发,最简单的无非是
node xxx.js ,进一步也就是热更新。但引入ts后就需要考虑编译和实时刷新的问题。毕竟不像每改一点代码,就手动重启服务器,手动编译。解决方案
以下是我的解决方案,后面我会说一下为什么这样写,如果来不及看或者只想要答案的话复制就行。
"watch" : "ts-node ./app/index.ts",
"start" : "nodemon --watch app/index.js",
"build" : "tsc",
"debugger" : "nodemon --watch ./app -e ts,tsx --exec node --inspect -r ts-node/register ./app/index.ts",
"watch-serve": "nodemon --watch './app/**/*' -e ts,tsx --exec ts-node ./app/index.ts"那我们一个一个来说。
npm run watch
这个命令就是在本地使用
ts-node 启动一个服务器。来看一下对
ts-node 的描述。TypeScript execution and REPL for node.js, with source map support. Works with typescript@>=2.0.
这是一个在
node.js 的执行和交互的typescript环境,简而言之就是为了ts而生的!!那这条命令就是根据当前的入口运行程序,唯一的一个问题是,不支持热更新。所以pass。
npm run build &&
npm run start这俩放一起说是因为相关性比较高。可以说是相互依赖的关系吧。









