Включение ведения журнала при использовании 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, но с тех пор было удалено. Я ищу журналы только тогда, когда я делаю производственную сборку, а затем запускаю на локальном хосте, используя https://www.npmjs.com/package/http-server.

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

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

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


person Alexis Bell    schedule 29.04.2020    source источник


Ответы (1)


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

Разделенный исходный код Workbox navigationRoute.ts#L100-L104"> содержит rel множество подробных операторов журнала, охраняемых 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' на этапе объединения), но вы все равно хотите отключить подробное ведение журнала.

person Jeff Posnick    schedule 30.04.2020