【发布时间】:2020-01-27 14:05:19
【问题描述】:
在 VS Code(在我的例子中是 .NET Core)中调试 Web 应用服务器代码时,有一个名为 serverReadyAction 的 launch.json 配置选项可以打开 Web 浏览器,例如:
"serverReadyAction": {
"pattern": "^\\s*Now listening on:\\s+(https?://\\S+)" ,
"action": "openExternally"
}
openExternally 是一种可能的操作,debugWithChrome 是另一种操作。后者使用 Debugger for Chrome 扩展启动 Chrome 调试会话。在这种模式下,可以添加一个 webRoot 属性,该属性将传递给 Chrome 调试会话:
"serverReadyAction": {
"action": "debugWithChrome",
"pattern": "^\\s*Now listening on:\\s+(https?://\\S+)" ,
"webRoot": "${workspaceRoot}/wwwroot"
}
这样做的好处是现在我可以在我的 C#和我的客户端 JavaScript 中打断点 - 太棒了!
但是,我的 JS 实际上是从 TypeScript 编译并捆绑的(在本例中是 Webpack)。通常在使用 Debugger for Chrome 扩展程序时,我可以告诉它sourceMapPathOverrides。一个典型的配置是:
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome",
"url": "https://localhost:5001",
"webRoot": "${workspaceRoot}/src",
"sourceMapPathOverrides": {
"webpack:///./src/*": "${webRoot}/*"
}
}
我的问题是,在使用由serverReadyAction/debugWithChrome 创建的 Chrome 调试会话时,这是否可行。不是很明显。
【问题讨论】:
标签: debugging visual-studio-code vscode-debugger