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

时间:2019-04-22 21:37:02

标签: webpack error-handling requirejs

从RequireJS迁移到Webpack 4之后,我一直在寻找与require.onError等效的版本来捕获运行时块加载错误,但是找不到添加 global 的任何选项。错误处理程序。

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

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

但是,是否有Webpack选项可添加通用块加载错误捕获?因此我可以向用户提供更多的故障排除选项(例如刷新页面提示)。

我的应用程序大量使用异步/延迟加载,并且在每个import调用中内联添加错误管理代码是不可行的,因为我需要进行回退以确保出现错误处理程序,以防万一开发人员忘记添加错误管理。

1 个答案:

答案 0 :(得分:1)

遇到相同的问题,并研究了webpack 4,但是在动态导入的webpack中找不到与count-7类似的东西。我写了一个babel插件,它将[btn, self.btns[count-7]]附加到每个动态导入中,并将在babel插件选项中使用错误处理程序函数定义。

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

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

P.S。我不想使用window.onerror,而是想要特定的错误处理程序。