Предоставляет ли Webpack глобальный хук ошибок при сбое загрузки чанка? - PullRequest
3 голосов
/ 23 апреля 2019

После перехода с RequireJS на Webpack 4 я искал эквивалент require.onError , чтобы фиксировать ошибки загрузки чанков во время выполнения, но я не смог найти никаких опций для добавления global обработчик ошибок.

Я знаю, что возможно зафиксировать ошибки при использовании асинхронных import вызовов, как этот:

import('module/path')
.catch(function() {
    // error handling code
});

Но есть ли опция Webpack для добавления общего перехвата ошибок загрузки фрагмента? поэтому я могу предоставить пользователям дополнительные возможности устранения неполадок (например, обновить страницу).

Мое приложение интенсивно использует асинхронную / ленивую загрузку, и добавление встроенного кода управления ошибками при каждом вызове import не вариант, так как мне нужен запасной вариант, чтобы убедиться, что будет обработчик ошибок в случае, если dev забывает добавить управление ошибками.

1 Ответ

1 голос
/ 01 июля 2019

Обнаружил ту же проблему и исследовал веб-пакет 4, но не нашел ничего похожего на require.onError в веб-пакете для динамического импорта.Я написал плагин babel, который будет прикреплять catch к каждому динамическому импорту и будет принимать определение функции обработчика ошибок в опциях плагина babel.

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

Вот плагин babel, https://www.npmjs.com/package/babel-plugin-dynamic-import-override

PS Я не хотел использовать window.onerror и хотел конкретный обработчик ошибок.

...