You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将VSCode调试器附加到含环境变量的ts-node命令

解决VSCode调试器附加带环境变量的ts-node命令问题

问题背景

需要将VSCode调试器附加到以下使用dotenv加载环境变量的ts-node命令:
原package.json配置:

{
  "runMyScript": "ts-node -r dotenv/config --transpile-only tasks/migration/myScript.ts dotenv_config_path=./local.env"
}

此前尝试添加--respawn --inspect=4000参数并配合launch.json配置未成功,原launch.json:

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

解决方案

1. 调整package.json的启动命令参数顺序

ts-node的调试参数(--inspect、--respawn)必须作为ts-node的直接参数放在命令最前端,不能和脚本参数混放。修改后的命令如下:

{
  "runMyScript": "ts-node --inspect=4000 --respawn -r dotenv/config --transpile-only tasks/migration/myScript.ts dotenv_config_path=./local.env"
}

注意:dotenv_config_path=./local.env需要放在脚本文件名之后,这是dotenv/config模块解析参数的要求。

2. 更新VSCode的launch.json配置

需启用sourcemap支持(TypeScript调试必备),并指定调试协议,修改后的配置:

{
  "configurations": [
    {
      "name": "RUN attach to DEV",
      "type": "node",
      "request": "attach",
      "port": 4000,
      "trace": true,
      "skipFiles": ["<node_internals>/**"],
      "restart": true,
      "sourceMaps": true,
      "protocol": "inspector",
      "resolveSourceMapLocations": [
        "${workspaceFolder}/**",
        "!**/node_modules/**"
      ]
    }
  ]
}
  • sourceMaps: true:让调试器识别ts-node生成的inline sourcemap,映射TypeScript源码
  • protocol: "inspector":使用Node.js现代调试协议,确保兼容性
  • resolveSourceMapLocations:限定sourcemap查找范围,避免干扰

3. 调试步骤

  1. 执行命令启动ts-node进程:npm run runMyScript
  2. 在VSCode的调试面板中选择RUN attach to DEV配置,点击启动按钮完成附加

内容的提问来源于stack exchange,提问作者GorvGoyl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:30:55