最近在做一个小程序,前端使用的nuxtjs,一切正常,而后端我没有用框架使用typescript自己在写,package.json如下
{
"name": "server",
"version": "1.0.0",
"main": "src/server.ts",
"type": "module",
"scripts": {
"start": "tsx src/server.ts",
"dev": "tsx watch src/server.ts",
"build": "tsc",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": "",
"dependencies": { },
"devDependencies": { }
}
使用tsx watch来调试程序,挺方便的,每次调试的时候使用npm run dev运行程序就可以了,后来发现当某些时候需要结束程序进程的之后,按CTRL+C结束进程总会报错退出代码2,而控制台也会崩溃退出,每次都需要重新再去打开控制台,切换目录,确实有点烦人。
经过排查,当dev参数为tsx src/server.ts时一切正常,可以正常退出,但是这样当我修改了文件,必须要终止进程重新运行命令启动进程调试。(问过chatgpt,说是tsx watch在windows下的兼容问题,重新再问又说是程序顶层有await引起的。)工程量太大,有空了再去一一排查吧。
最后找到的解决方案是在vscode的左下角齿轮设置中,搜索terminal.integrated.defaultProfile.windows,将Windows 上的默认终端配置文件,改为Command Prompt,暂时一切正常,问题解决。