VSCode 上的 pwa-node 类型启动配置是啥?

Posted

技术标签:

【中文标题】VSCode 上的 pwa-node 类型启动配置是啥?【英文标题】:What is the pwa-node type launch configuration on VSCode?VSCode 上的 pwa-node 类型启动配置是什么? 【发布时间】:2020-12-06 02:13:51 【问题描述】:

我注意到 VSCode 生成的用于 npm 调试的默认启动配置(通过 NPM 启动)默认将配置类型设置为“pwa-node”。

添加“通过 NPM 启动”配置:

生成的配置类型:

我搜索了一下,但没有找到这个的含义(可能与 Progressive Web Apps 有关?)。

有谁知道“pwa-node”的含义以及为什么是“pwa-node”而不是“node”?

【问题讨论】:

PWA 表示渐进式 Web 应用程序,不特定于 vscode。 【参考方案1】:

type 属性

type 属性指定用于此启动配置的调试器类型。每个安装的调试扩展都会引入一个类型:例如,node 用于内置 Node 调试器,phpgo 用于 PHP 和 Go 扩展。


type : pwa-node

javascript Debugger 是用于在 VS 代码中进行调试的内置扩展。此扩展在最新版本的 VS 代码中默认安装并启用。 "type": "pwa-node" 来自预览版 Javascript Debugger (Nightly)。 pwa- 前缀用于区分应该使用哪个调试器。

在从侧边栏的调试部分创建launch.json 文件时,当您单击下拉菜单中的Node.js(Preview) 而不是Node.js 时,"type": "pwa-node" 将添加到您的launch.json

如果你打开 VS 代码的defaultSettings.json,你可以看到预览版的设置(启用),如下所示:

"debug.javascript.usePreview": true,
"debug.javascript.usePreviewAutoAttach": true,

如果您想使用此夜间版本的调试器扩展,您需要禁用内置调试器并从市场安装夜间版本。为此,请按以下步骤操作:

    打开扩展视图并搜索@builtin @id:ms-vscode.js-debug 右键单击并禁用扩展。 现在通过键入以下内容搜索夜间扩展:@id:ms-vscode.js-debug-nightly 点击安装并重启VS代码。

现在您可以使用 JavaScript 调试器 (Nightly) 调试 Typescript 和 Javascript 代码。

如果您收到 debug type 'pwa-node' is not supported 的错误,请从您的 settings.json 中删除以下设置:

"debug.node.useV3": true,
"debug.chrome.useV3": true

type : node

如果您想要以前的行为,即"type": "node",请在从侧边栏的调试部分创建launch.json 文件时,在下拉菜单中单击Node.js 而不是Node.js(Preview)。您也可以在launch.json 中手动输入"type": "node",而不是从菜单中输入,这不会有任何区别。

如果您对 Javascript 调试器的夜间版本进行了上述更改,您应该撤消这些更改以使内置的 Javascript 调试器正常工作。

【讨论】:

@OldGeezer,如答案中所述,pwa-node 是夜间构建,也称为预览构建。 node 是一个常规的、更稳定的构建。如果您想要渐进式网络应用程序等最新功能,请使用 pwa-node,但它可能尚未准备好生产。【参考方案2】:

pwa- 前缀是/曾经是针对 VS Code 的 new JavaScript debugger(当时命名为 vscode-pwa)的一种方式。

https://github.com/microsoft/vscode-js-debug/pull/32

与 Kai 和 Rob 交谈,我们想做的是做 PWA 扩展 替代现有的两个 Chrome 和 Node 调试扩展。 因此,我们希望 PWA 扩展能够读取并支持 现有的配置设置,并通过启动 chrome 来调用 和node 类型。更多工作,即将在后续 PR 中推出,将 需要实际处理这些设置。

这也将构建转移到 Gulp 系统,支持 NLS 和匹配 现有的扩展。构建的一部分是拥有类型的能力 并且命令以pwa-为前缀:运行gulp将生成一个扩展 注册类型pwa-nodepwa-chrome,而gulp --drop-in将 删除这些前缀。这让我们可以使用 现有的包,直到我们想要开始对其进行测试。

他们还在这里谈论如何使用定位机制:https://github.com/microsoft/vscode/issues/85984

【讨论】:

有人知道PWA 的缩写代表什么吗? (在我看到的上下文中,它似乎并不意味着“渐进式 Web 应用程序”,这是 Web 开发中该首字母缩写词的常见含义。) @robenkleene 可能真的只是“渐进式 Web 应用程序”。请参阅此提交 github.com/microsoft/vscode-js-debug/commit/… 中的链接徽标 (resources/pwa.png)。它是 PWA 的标志。一些提交09c9ce22e 还包含使用 ServiceWorkers、CacheStore 和 Puppeteer 的代码。也许这最初是为调试 PWA 应用程序而创建的。另请参阅efa26ae84,它从 CDP(代码调试协议?)重命名为 PWA

以上是关于VSCode 上的 pwa-node 类型启动配置是啥?的主要内容,如果未能解决你的问题,请参考以下文章

linux 配置vscode

Vscode + Cygwin + boost 配置文件

VSCode中的Python Azure函数(HTTPTrigger)上的调试未正确启动Func Host Start

Vscode配置c/c++所需的json文件

VSCode launch.json配置详解

开始调试会话时,MacOS 上的 VSCode LLDB 错误