当块加载失败时,Webpack 是否提供全局错误挂钩?

jpg*_*pgc 9 error-handling requirejs webpack

从 RequireJS 迁移到 Webpack 4 后,我正在寻找与require.onError等效的方法来捕获运行时块加载错误,但我找不到任何添加全局错误处理程序的选项。

我知道在使用异步import调用时可以捕获错误,如下所示:

import('module/path')
.catch(function() {
    // error handling code
});
Run Code Online (Sandbox Code Playgroud)

但是,是否有 Webpack 选项来添加通用块加载错误捕获?所以我可以为用户提供进一步的故障排除选项(比如刷新页面提示)。

我的应用程序大量使用异步/延迟加载,并且在每次import调用中内联添加错误管理代码不是一种选择,因为我需要回退以确保在开发人员忘记添加错误管理时会有错误处理程序。

edi*_*y17 5

遇到同样的问题并探索了 webpack 4,但找不到类似于require.onErrorwebpack 中动态导入的任何内容。我编写了一个 babel 插件,它将附加catch到每个动态导入,并将在 babel 插件选项中获取错误处理函数定义。

由于动态导入是承诺,因此链接承诺和附加catch将附加自定义错误处理程序,而不会导致现有代码中断。

这是 babel 插件,https://www.npmjs.com/package/babel-plugin-dynamic-import-override

PS 我不想使用 window.onerror 并且想要特定的错误处理程序。