调试/查找RequireJS加载的脚本

时间:2013-01-16 19:08:26

标签: javascript debugging requirejs

我刚开始使用RequireJS为我的页面加载脚本,但在尝试使用chrome调试问题时遇到了障碍。

假设我的主脚本依赖于两个依赖项:dep1dep2

require(["dep1", "dep2"], function(dep1, dep2) {
    //do something
});

在运行单元测试时,我注意到dep1.js中的某些内容无法正常工作,所以我打开了chrome dev工具来插入断点,除了......

missing dependencies

... dep1.js不存在!

如何找到源文件以插入断点?!

我确信在正确运行脚本时正在加载文件 。我只是在源列表中看不到它们

2 个答案:

答案 0 :(得分:5)

终于意识到问题在于我使用的是r.js而不是require.js。一旦我切换,我就可以毫无问题地看到这些文件。

顺便说一句,临时解决方法是在插入文件的末尾插入下面的行。这个只是获取chrome来获取文件。

//@ sourceURL=GameWorldAction.js

答案 1 :(得分:1)

您永远不会在上面的示例中关闭数组。

require(["dep1", "dep2", function(dep1, dep2) {
    //do something
});

应该是:

require(["dep1", "dep2"], function(dep1, dep2) {
    //do something
});

编辑以响应更新问题:

我假设r.js是RequireJs文件。看起来似乎RequireJS没有正确加载文件,如果文件已经显示在检查器中。

您是否在data-main标记上使用script属性来指定主JS文件?如果是这样,dep1dep2文件与主JS文件位于同一目录中吗?如果您尝试从其他路径或域加载文件,则可能必须指定其他baseUrl。您可以通过在require.config中设置它来更改baseUrl。

<script>
  require.config({
    //path can also be a domain like "//image.mydomain.tld/jscript"
    baseUrl: "/another/path" 
  });
</script>