从RequireJS迁移到Webpack 4之后,我一直在寻找与require.onError等效的版本来捕获运行时块加载错误,但是找不到添加 global 的任何选项。错误处理程序。
我知道使用异步import
调用时可能会捕获错误,如下所示:
import('module/path')
.catch(function() {
// error handling code
});
但是,是否有Webpack选项可添加通用块加载错误捕获?因此我可以向用户提供更多的故障排除选项(例如刷新页面提示)。
我的应用程序大量使用异步/延迟加载,并且在每个import
调用中内联添加错误管理代码是不可行的,因为我需要进行回退以确保出现错误处理程序,以防万一开发人员忘记添加错误管理。
答案 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,而是想要特定的错误处理程序。