logging - 使用 workbox-webpack-plugin 时启用日志记录

标签 logging service-worker workbox workbox-webpack-plugin workbox-window

我的项目有一个使用 Workbox 的 service worker 的旧部分实现。我一直在尝试更新它并在此过程中添加功能。在此过程中的某个地方,我在开发控制台(Chrome 版本 81.0.4044.129)中丢失了 Workbox 日志。

我不确定这是什么时候发生的,因为我在尝试升级和添加 workbox-window 时并没有太注意它们,但我希望它们现在回来。

我正在使用 workbox-webpack-plugin 和 workbox-window v5.1.3。

我的 webpack 配置如下所示:

      new WorkboxWebpackPlugin.InjectManifest({
        swSrc: './src/src-serviceWorker.js',
        swDest: 'serviceWorker.js',
        exclude: [/\.map$/, /asset-manifest\.json$/]
      }),

我的 service worker 文件如下所示:

import { precacheAndRoute } from 'workbox-precaching'
import { registerRoute } from 'workbox-routing'
import { CacheFirst } from 'workbox-strategies'


precacheAndRoute(self.__WB_MANIFEST)
self.__WB_DISABLE_DEV_LOGS = false


registerRoute(
  /https:\/\/api\.***\.com\/graphql/,
  new CacheFirst()
)

该应用程序本身是一个 React 应用程序,最初是使用 create-react-app 创建的,但后来被弹出。我只在进行生产构建时查找日志,然后使用 http-server 在本地主机上运行包。

我检查了 workbox debugging page这就是为什么我在行中添加了 self.__WB_DISABLE_DEV_LOGS = false 但这没有任何区别。

有什么办法可以取回日志吗?这会让我的生活更轻松,因为我正在尝试向服务 worker 添加移动功能。我还仔细检查了我是否在 Chrome 开发者工具中看到了所有级别的日志记录,包括详细的日志记录。

我还添加了自己的日志,它们确实显示了,所以我知道正在调用 service worker。

最佳答案

不幸的是,这在当前文档中隐藏了一点,但我认为文档的“Keeping dev-only code out of the bundle”部分解释了正在发生的事情。

Workbox 的未捆绑源代码 contains a lot of verbose logging statementsif (process.env.NODE_ENV !== 'production') {...} 子句保护。 webpack automatically substitutes process.env.NODE_ENV 使用 'development''production' 基于您的 mode 配置的值选项。

因此,如果您在 webpack 编译中使用 mode: 'production',您将获得一个小得多的 Workbox 包,但它不包含任何详细的日志记录语句。 (仍然会有一些不太详细的错误记录。)

self.__WB_DISABLE_DEV_LOGS = false 如果您使用的是 Workbox 的开发版本(即如果 process.env.NODE_ENV 获取在捆绑步骤中替换为 'development'),但无论如何您都想禁用详细日志记录。

关于logging - 使用 workbox-webpack-plugin 时启用日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61512907/

相关文章:

java - MongoDB java 驱动程序记录查询

c# - 事件日志实用性

Javascript Service Worker - 如何在浏览器关闭时触发事件

service-worker - 如何修改 Workbox 生成的预缓存 list 文件?需要 url 前面有 '/'

webpack - 如何将生成的 PWA list 包含到 Workbox 呈现的预缓存 list 中

service-worker - 使用 Workbox 的动态缓存

java - 使用 spring-DM 扩展器进行 OSGi 日志记录不进行日志记录

spring-boot - 使用 Logback MDC 进行 Spring Boot ErrorController 日志记录

javascript - ServiceWorker 不更新缓存

javascript - 无法在 'waitUntil' 上执行 'ExtendableEvent'