运行 Visual Studio 2022 在 Debug 模式下无法安装 PWA Service Worker

Can't install PWA Service Worker when running Visual Studio 2022 in Debug mode

我正在调查 Blazor WebAssembly 是否是即将推出的渐进式 Web 应用程序 (PWA) 项目的良好架构。

在 Visual Studio 2022 年,我创建了一个“Blazor Web Assembly 应用程序”,并选中“.NET 6.0 LTS”、“为 HTTPS 配置”、“ASP.NET 核心托管”和“渐进式” Web应用程序”。然后我“F5”到 运行 处于调试模式的项目。

然后在浏览器中(我正在使用 Chrome 101.0.4951.41,但 Edge 做同样的事情),F12 转到开发人员工具和 select 应用程序选项卡。我期待看到安装了 Service Worker,但状态是“#0 trying to install”。

我对 PWA 有一定的了解,但我以前没有见过,所以很困惑。

我注意到当打开开发人员工具并刷新页面时,它一直转到“源”选项卡。它显示“dotnet.6.0.4.slzlks63yx.js”,带有我通常忽略的 WASM/.Net 噪声。

然后我点击 Pretty Print“{}”,它显示了以下带有“调试器”的内容;突出显示的行...

我试图根据 阻止 Chrome 在 Debugger 语句处停止,但这没有任何区别。

我已经关闭了热重载,但还是没用。

如果您在没有调试 (Ctrl-F5) 的情况下启动应用程序,则有效。 Service Worker 按预期启动。

这是一个错误吗?这是预期的行为吗?我做错了什么吗?

提前致谢。

默认情况下,只能使用已发布版本安装 Blazor Wasm 的 PWA 端。这是为了防止调试错误的代码,因为它使用的是缓存元素而不是新编译的代码。

如果你查看你的项目,你会找到 service-worker.js 文件,并与它嵌套,你有一个 service-worker.published.js 文件,其中包含所有需要的魔法用于 PWA 缓存安装。您可以将它移动到普通文件...但是如果您使用它,请注意缓存刷新或缺少缓存的潜在和可能的错误。