vscode终端powershell.exe 退出代码: 2的问题排查

最近在做一个小程序,前端使用的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,暂时一切正常,问题解决。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注