首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用npm脚本在VSCode中进行调试

用npm脚本在VSCode中进行调试
EN

Stack Overflow用户
提问于 2022-04-23 09:21:01
回答 1查看 875关注 0票数 1

在我的package.json中,我定义了一些脚本,如下所示:

代码语言:javascript
运行
复制
"scripts": {
    "build": "tsc -p tsconfig.json",
    "run": "node --experimental-specifier-resolution=node .",
    "start": "npm run build && npm run run"
}

现在,我只是使用终端上的npm run start编译和运行所有的东西,但是我现在想使用断点,并且希望切换到VSCode调试。

我不知道运行脚本的launch.json配置应该是什么样子。

我的项目结构如下所示:

代码语言:javascript
运行
复制
.
├── package.json
├── src/
│   └── start.ts
└── dist/
    └── start.js

我认为到目前为止我最好的尝试是:

代码语言:javascript
运行
复制
{
    "name": "Launch via NPM",
    "request": "launch",
    "type": "node",
    "cwd": "${workspaceRoot}",
    "runtimeExecutable": "npm",
    "runtimeArgs": [
        "run",
        "start"
    ],
},

不幸的是,这给了我以下错误:

Exception has occurred: Error: ENOENT: no such file or directory, stat '{cwd}\git.COM'

"runtimeArgs": ["run","start"],替换"command": "npm run start",也会导致同样的错误。

EN

回答 1

Stack Overflow用户

发布于 2022-04-23 13:14:54

使用NPM脚本

您可以在您的package.json中创建一个附加脚本,以启动节点,并使用等待附加调试器的指令。IMHO,这并不理想,我会避免它,但有时它是必要的(例如,当节点由某个shell脚本启动时):

代码语言:javascript
运行
复制
"scripts": {
  "debug": "npm run build && node --experimental-specifier-resolution=node --inspect-brk ."
}

然后,您需要在launch.json中进行配置,以便将调试器附加到等待节点进程:

代码语言:javascript
运行
复制
{
  "name": "Attach",
  "type": "node",
  "request": "attach",
  "skipFiles": ["<node_internals>/**"],
  "outFiles": ["${workspaceFolder}/dist/**/*.js"]
}

直接发射节点

另一种可能是使用适当的参数启动launch.json中的节点。您的package.json有一些代码复制,但这是我自己做的。

请注意,如果要直接调试TS文件,则必须生成源映射并指示生成的JS文件的位置。

以下是它的样子:

代码语言:javascript
运行
复制
{
  "name": "Debug",
  "type": "node",
  "request": "launch",
  "skipFiles": ["<node_internals>/**"],
  "program": "${workspaceFolder}/src/start.ts",
  "outFiles": ["${workspaceFolder}/dist/**/*.js"],
  "runtimeArgs": [
    "--experimental-specifier-resolution=node"
  ]
}

为了确保构建了TS代码,我将在另一个终端窗口中以监视模式运行TSC:

代码语言:javascript
运行
复制
tsc -p tsconfig.json --watch
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71978387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档