Javascript RequireJS:查找导致错误的脚本

Javascript RequireJS:查找导致错误的脚本,javascript,requirejs,Javascript,Requirejs,我正在寻找一种优雅的方法来找出导致超时错误(即加载依赖项失败)的脚本的完整路径 requirejs.onError=函数(err){ //这项工作: 变量脚本\u加载失败\u=err.originalError.target.src //现在我想: var\u脚本\u负责\u此= }; RequireJS选择了一种不可靠的、断开连接的机制来捕获错误。它使用一个计时器来查看它是否得到了预期的结果。其他一些AMD装载机使用其他更直接的机制来检测装载过程中的错误情况 我首选的AMD加载程序是,它通过硬

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

requirejs.onError=函数(err){
//这项工作:
变量脚本\u加载失败\u=err.originalError.target.src
//现在我想:
var\u脚本\u负责\u此=
};

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

我首选的AMD加载程序是,它通过硬连接来捕获加载/解析错误

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

使用

请注意,
error.requireModules
中给出了失败的模块名称。此类Errorback可用于装载机和模块。如果资源有多个回退路径,请使用


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

这很酷,但我只得到了requireJS堆栈跟踪,并且在错误事件中没有任何关于脚本实际失败的提示。你知道这一点吗?我已经为此绞尽脑汁一个小时了。不,不幸的是我放弃了。你是说这是不可能的吗?我认为他想要的不是错误处理,而是诊断哪个脚本破坏了对象图负载。所以你建议基本上按文件添加一个错误处理程序?你真的这么做/推荐了吗?我不认为ddotsenko实际上是“反对”需求本身,而是它的一些内部机制。我能理解他的观点,这并不妨碍我每天使用它。仅供参考,您实际上可以使用Curl.JS(8K)和基于需求的代码来在生产环境中加载缩小的脚本。我认为如果您想提供回退机制,AMD错误应该按文件处理。如果您只关心错误通知,那么可以在全局级别进行。虽然我们很少会遇到40个模块的问题,但不知道您在使用多少模块。感谢您提供有关Curl的更多信息。为什么不使用?它公开了与本地回调相同的错误属性……更多的是关于在哪里编写“回退”逻辑,使用全局onError方法在任何方面都没有错。对我来说,将给定模块的回退逻辑与模块一起编写更有意义,而不是在一个地方编写所有模块的回退逻辑。显然,这更像是一个设计决策。
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
});