这困扰了我一段时间,但我找不到解决办法。当我的一个脚本出现错误(例如语法错误)时,Chrome的控制台不会给我一个非常有用的错误消息。
例如,在一个名为example.js
的简单脚本中,我调用了一个名为whatever()
的函数,该函数不存在:
define(function(require){
'use strict';
whatever();
});
我在Chrome中的控制台错误说明:
ReferenceError: whatever is not defined(…) require.js:901
我期望ReferenceError但require.js
的第901行只是一些负责抛出错误的代码。此外,堆栈跟踪没有显示任何有用的内容;它也只引用require.js
中的行。我注意到Firefox的检查员确实在堆栈跟踪中显示了问题的实际位置,这很有帮助,但我更喜欢在Chrome中进行开发。
有没有办法让控制台错误指向问题实际存在的行号和文件?我宁愿看到:
ReferenceError: whatever is not defined(…) example.js:4
我已经看到this question和其他类似的听起来很相似,但我没有发现任何适用于这种情况,或者使用requirejs解决此问题的代码。也许我可以某种方式修改requirejs.onError
?
答案 0 :(得分:1)
您是否尝试追加
//# sourceURL=example.js
在评估脚本的末尾?调试器会将该代码理解为源自example.js文件,而不是来自它所评估的脚本。
您确定Require.JS不支持开箱即用吗?我在GitHub上发布了我自己的“Javascript DNA”异步加载器/依赖解析器,它自动完成它并且非常容易,所以我猜require.js已经有类似的东西......