如何将调试器附加到 VSCode 中的 ts-node 命令

Jer*_*yal 9 debugging typescript visual-studio-code ts-node

如何将 VSCode 调试器附加到ts-node使用环境变量的命令,如下所示:

包.json:

{
"runMyScript": "ts-node -r dotenv/config --transpile-only tasks/migration/myScript.ts dotenv_config_path=./local.env"
}
Run Code Online (Sandbox Code Playgroud)

我尝试--respawn --inspect=4000使用下面的 launch.json 将标志添加到上述命令,但它不起作用:

启动.json:

{"configurations": [
    {
      "name": "RUN attach to DEV",
      "type": "node",
      "port": 4000,
      "request": "attach",
      "trace": true,
      "skipFiles": ["<node_internals>/**"],
      "restart": true
    },
]}

Run Code Online (Sandbox Code Playgroud)

Fre*_*888 6

  • 将此 json 放入.vscode/launch.json现有配置或将配置添加到现有配置中
{
  "version": "1.0.0",
  "configurations": [
    {
      "name": "TS-Node",
      "type": "node",
      "request": "launch",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/ts-node",
      "runtimeArgs": [
        "--transpile-only",
        // if you use esm
        "--esm" 
      ],
      "program": "${file}",
      "cwd": "${workspaceRoot}",
      "internalConsoleOptions": "openOnSessionStart",
      "skipFiles": ["<node_internals>/**", "node_modules/**"]
    }
  ]
}

Run Code Online (Sandbox Code Playgroud)
  • 切换到要启动的文件并设置断点
  • 启用Run and DebugVSCode 左侧的窗口并运行名为TS-Node
  • 恭喜!您正在调试您的打字稿代码


Mik*_*ike 3

这个解决方案对我有用 https://gist.github.com/cecilemuller/2963155d0f249c1544289b78a1cdd695

这个想法是使用:node -r ts-node/register/transpile-only

{
  ...
  "runtimeExecutable": "node",
  "runtimeArgs": ["--nolazy", "-r", "ts-node/register/transpile-only"],
}
Run Code Online (Sandbox Code Playgroud)