RequireJS:找到导致错误的脚本

The*_*o.T 17 javascript requirejs

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

requirejs.onError = function (err) {

   // this works:
   var script_that_failed_loading = err.originalError.target.src

   // now I want:
   var the_script_responsible_for_this = <???>

};
Run Code Online (Sandbox Code Playgroud)

小智 8

使用加载程序级别错误返回

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

请注意,模块名称失败error.requireModules.这种错误返回可用于加载器和模块.如果资源有多个回退路径,请使用路径回退.

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


ddo*_*nko 2

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

我首选的 AMD 加载器是CurlJS,它通过硬连线来捕获加载/解析错误。

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