是否可以为两个项目使用同一个 Service Worker?

Is it possible to utilize the same service worker for two projects?

我有一个 service worker 的问题,我有两个不同的项目,它们在同一台服务器上但在不同的文件夹中,我想使用我的 service worker 预缓存项目编号 2 上的文件(我的 service worker 是已经在进行项目编号 1)。我的问题是,是否可以这样做?还有其他方法可以解决这个问题吗?非常感谢任何帮助。

一般来说,是的,只要 service worker 托管在与每个项目的根处于同一级别(或“更高”)的 URL 上。这将确保每个项目都在 service worker 的范围内。

我假设您要问的挑战之一与在该服务工作者中创建预缓存清单有关,该清单包含来自两个项目的构建工件。有几种不同的方法可以解决这个问题,但我认为最直接的方法是确保您始终 运行 同时为每个项目构建过程,然后当您使用 Workbox 的构建工具创建预缓存清单,确保获取每个项目输出的所有资产。

配置构建过程的细节取决于您当前使用的是什么。你提到第一个项目已经有一个服务工作者(大概使用 Workbox 的预缓存),所以我认为只使用相同的构建设置,通过调整来获取额外的资产,将是最简单的。