RequireJS:查找导致错误的脚本

RequireJS: finding the script responsible for an error

本文关键字:错误 脚本 查找 RequireJS      更新时间:2023-09-26

我正在寻找一种优雅的方法来找出导致超时错误(即未能加载依赖项)的脚本的完整路径。

requirejs.onError = function (err) {
   // this works:
   var script_that_failed_loading = err.originalError.target.src
   // now I want:
   var the_script_responsible_for_this = <???>
};

使用加载器级别的错误回显

require(["foo","bar"],function(foo,bar){
  // perform some action
},function(error){
  // handle error here
});

请注意,故障模块名称在error.requireModules中给出。这样的错误回复既可以用于加载程序,也可以用于模块。如果一个资源有多个回退路径,请使用路径回退。

根据我的个人经验,我谦虚地不同意ddotsenko。我们在生产环境中使用RequireJS。如果设置正确,RJS是非常可靠的。

RequireJS选择了一种不可靠的、断开连接的机制来捕获错误。它使用计时器来查看它期望得到的结果。一些其他AMD加载程序使用其他更直接的机制来检测加载过程中的错误情况。

我喜欢的AMD加载程序是CurlJS,它是硬连接的,可以捕获加载/解析错误。

由于体系结构的选择,它可以更可靠地检测错误条件,并且可以将错误处理程序直接附加到每个require调用。如果错误捕获之类的东西对你来说很重要,我强烈建议你看看CurlJS。