Включение ведения журнала при использовании 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'
на этапе объединения), но вы все равно хотите отключить подробное ведение журнала.