Включение ведения журнала при использовании workbox-webpack-plugin

В моем проекте была старая частичная реализация сервис-воркера с помощью Workbox. Я долго пытался обновить его и добавить функциональность. Где-то в этом процессе я потерял журналы Workbox в консоли разработчика (версия Chrome 81.0.4044.129).

Я не уверен, в какой момент это произошло, потому что я не обращал на них особого внимания, пока пытался обновить и добавить в окно рабочего окна, но я бы хотел их вернуть сейчас.

Я использую v5.1.3 как workbox-webpack-plugin, так и workbox-window.

Конфигурация моего веб-пакета выглядит так:

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

Мой файл сервис-воркера выглядит так:

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()
)

Само приложение представляет собой приложение для реагирования, которое изначально было создано с помощью create-react-app, но с тех пор было удалено. Я ищу журналы только тогда, когда делаю производственную сборку, а затем запускаю на localhost с помощью пакета http-server.

Я проверил страницу отладки рабочего окна, поэтому добавил в строкуself.__WB_DISABLE_DEV_LOGS = false но это не имело значения.

Есть идеи, как мне вернуть журналы? Это сделало бы мою жизнь намного проще, поскольку я пытаюсь добавить функции перемещения для сервис-воркера. Я также дважды проверил, есть ли у меня все уровни ведения журнала, видимые в инструментах разработчика Chrome, включая подробные.

Я также добавил свои собственные журналы, и они действительно появляются, поэтому я знаю, что вызывается сервисный воркер.

1 ответ

Решение

К сожалению, это немного похоронено в текущей документации, но я думаю, что раздел документации " Сохранение кода только для разработчиков" объясняет, что происходит.

Разделенный исходный код Workbox содержит множество подробных операторов ведения журнала, охраняемыхif (process.env.NODE_ENV !== 'production') {...} статьи. webpack автоматически заменяет process.env.NODE_ENV либо с 'development' или 'production' исходя из ценности вашего mode вариант конфигурации.

Итак, если вы используете mode: 'production' в твоем webpackкомпиляции, вы получите пакет Workbox, который намного меньше, но который не содержит никаких подробных операторов ведения журнала. (По-прежнему будет вестись менее подробный журнал ошибок.)

self.__WB_DISABLE_DEV_LOGS = falseполезно, если вы используете сборку Workbox для разработчиков (т. е. еслиprocess.env.NODE_ENV заменяется на 'development' на этапе объединения), но вы все равно хотите отключить подробное ведение журнала.

Другие вопросы по тегам