Javascript 如何从require.js错误中获取行号?

Javascript 如何从require.js错误中获取行号?,javascript,requirejs,google-chrome-devtools,Javascript,Requirejs,Google Chrome Devtools,这已经困扰了我一段时间,但我还没有找到解决办法。当我的一个脚本出现错误时,比如语法错误,Chrome的控制台不会给我一条非常有用的错误消息 例如,在一个名为example.js的简单脚本中,我调用了一个名为which()的函数,该函数不存在: define(function(require){ 'use strict'; whatever(); }); Chrome状态下的我的控制台错误: ReferenceError: whatever is not defined(…)

这已经困扰了我一段时间,但我还没有找到解决办法。当我的一个脚本出现错误时,比如语法错误,Chrome的控制台不会给我一条非常有用的错误消息

例如,在一个名为
example.js
的简单脚本中,我调用了一个名为
which()
的函数,该函数不存在:

define(function(require){
  'use strict';

  whatever();
});
Chrome状态下的我的控制台错误:

ReferenceError: whatever is not defined(…)                 require.js:901
我预计会出现ReferenceError,但是
require.js
的第901行只是一些抛出错误的代码。此外,堆栈跟踪没有显示任何有用的内容;它也只引用
require.js
中的行。我注意到Firefox的inspector确实在堆栈跟踪中显示了问题的实际位置,这很有帮助,但我更喜欢在Chrome中开发

有没有办法让控制台错误指向问题所在的行号和文件?我宁愿看到:

ReferenceError: whatever is not defined(…)                 example.js:4
我看到过和其他人类似的声音,但我没有发现任何适用于这种情况的代码,也没有找到与requirejs一起解决这个问题的代码。也许我可以以某种方式修改requirejs.onError?

您是否尝试附加

//# sourceURL=example.js
在评估脚本的末尾?调试器会将代码理解为源于example.js文件,而不是源于对其求值的脚本


您确定Require.JS不支持开箱即用吗?我在GitHub上发布了我自己的“Javascript DNA”异步加载程序/依赖解析程序,它可以自动执行,而且非常简单,所以我猜require.js已经有类似的功能了……

这样做确实会强制堆栈跟踪显示错误的位置。我希望可以在require.js中进行配置,但是手动添加sourcemaps似乎是一个不错的解决办法。哦,另外,这个特定的错误处理对于require.js来说似乎是特定的,因为控制台错误指向这一行:
console.error(err),它似乎显式返回一个新错误,而不允许显示原始错误