【问题标题】:Sapper and Service Workers工兵和服务人员
【发布时间】:2021-01-17 20:42:10
【问题描述】:

这更像是一个服务工作者问题,尽管它可能更具体到 Sapper。我真的不知道,因为我是第一个管理 Service Worker 的人,我几乎没有使用过它们,而且经常觉得它们很痛苦。

基本上,无论我做什么,我都无法让 localhost:3000 停止加载应用程序的旧副本。我以各种方式注销了服务人员,包括尝试以编程方式注销。我已经清除了缓存,甚至清除了浏览器中的所有浏览数据。我的 Sapper 开发环境中的服务器未运行。

Brave 中会发生这种情况,但在 Opera 中表现相同,并且看起来像是一般的 Chromium 场景。我不使用 Firefox 或 Safari,但可能很快会进行测试,看看那里会发生什么行为。

这是一个片段,展示了我如何尝试注销 Service Worker。

https://youtu.be/Cb24I_fEklE

【问题讨论】:

    标签: service worker sapper


    【解决方案1】:

    我使用了这个小技巧,就像一个魅力。在您的rollup.config.js 中,outputs 对象中有一个serviceWorker 对象。

    serviceworker: {
        input: config.serviceworker.input(),
        output: config.serviceworker.output(),
        plugins: [
          resolve(),
          replace({
            "process.browser": true,
            "process.env.NODE_ENV": JSON.stringify(mode),
          }),
          commonjs(),
          !dev && terser(),
        ],
    
        preserveEntrySignatures: false,
        onwarn,
      },
    

    如果尚未声明,则在顶部定义一个变量dev

    const dev = process.env.NODE_ENV === "development";
    

    现在像这样更改您的 Service Worker 配置:

    serviceworker: !dev && {
        input: config.serviceworker.input(),
        output: config.serviceworker.output(),
        plugins: [
          resolve(),
          replace({
            "process.browser": true,
            "process.env.NODE_ENV": JSON.stringify(mode),
          }),
          commonjs(),
          !dev && terser(),
        ],
    
        preserveEntrySignatures: false,
        onwarn,
      },
    

    【讨论】:

      【解决方案2】:

      清除缓存,我唯一可以绕过它的方法。

      问题是服务工作者是从缓存中提供服务,再次从缓存中提供服务可能会将缓存中的此项重置为更有效的发送,并且您会陷入某种循环。

      --

      我发现这个问题是因为我正在考虑完全移除服务人员以尝试让我的网站的性能更高一点...

      这是非常必要的吗?它有什么好处?

      【讨论】:

      • 我认为您可以安全地删除。好处是离线访问资源。其他人有 cmets 吗?
      • @jhickok 我删除了我的绝对没有问题。
      【解决方案3】:

      确保关闭所有运行该应用的浏览器选项卡,您无法在服务工作人员为现有版本的应用提供服务时替换它。如果有任何缓存问题,也可以在安装 Service Worker 后尝试重新加载页面。

      【讨论】:

        猜你喜欢
        • 2015-07-05
        • 1970-01-01
        • 1970-01-01
        • 2021-09-22
        • 1970-01-01
        • 1970-01-01
        • 2021-12-13
        • 2015-09-02
        • 1970-01-01
        相关资源
        最近更新 更多