RequireJS:找到导致错误的脚本

时间:2013-02-04 17:24:11

标签: 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 = <???>

};

2 个答案:

答案 0 :(得分:7)

使用loader level errorbacks

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

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

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

答案 1 :(得分:2)

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

我首选的AMD加载程序是CurlJS,它很难解决加载/解析错误。

由于架构选择,它可以更可靠地检测错误情况,您可以将错误处理程序直接附加到每个require调用。如果错误捕获等内容对您很重要,我强烈建议您查看CurlJS。