Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调试/查找RequireJS加载的脚本_Javascript_Debugging_Requirejs - Fatal编程技术网

Javascript 调试/查找RequireJS加载的脚本

Javascript 调试/查找RequireJS加载的脚本,javascript,debugging,requirejs,Javascript,Debugging,Requirejs,我刚开始使用来加载页面的脚本,但在尝试使用chrome调试问题时遇到了障碍 假设我的主脚本依赖于两个依赖项:dep1和dep2 require(["dep1", "dep2"], function(dep1, dep2) { //do something }); 在运行单元测试时,我注意到dep1.js中的某些东西工作不正常,所以我打开chrome开发工具插入一个断点,除了 …dep1.js不存在 如何定位源文件以插入断点 我确信在脚本正确运行时,文件正在加载。我只是在源列表中看不到

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

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

require(["dep1", "dep2"], function(dep1, dep2) {
    //do something
});
在运行单元测试时,我注意到
dep1.js
中的某些东西工作不正常,所以我打开chrome开发工具插入一个断点,除了

dep1.js
不存在

如何定位源文件以插入断点


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

在上面的示例中,您从未关闭过数组

require(["dep1", "dep2", function(dep1, dep2) {
    //do something
});
应该是:

require(["dep1", "dep2"], function(dep1, dep2) {
    //do something
});
编辑以响应问题更新:

我假设
r.js
是RequireJs文件。看起来RequireJS没有正确加载文件,如果它加载了,那么文件就会显示在您的检查器中

您是否使用
脚本
标记上的
数据主
属性来指定主JS文件?如果是,则
dep1
dep2
文件是否与主JS文件位于同一目录中?如果试图从不同的路径或域加载文件,则可能必须指定不同的
baseUrl
。您可以通过在require.config中设置baseUrl来更改它

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

require.config({
//路径也可以是类似“//image.mydomain.tld/jscript”的域
baseUrl:“/other/path”
});

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

另一方面,临时的解决办法是在插入的文件末尾插入下面的行。这几乎让chrome能够识别文件

//@ sourceURL=GameWorldAction.js

该示例直接输入到SO中,数组在实际代码中是封闭的。我已经更新了问题是的,我正在使用
datamain
属性,并且文件确实加载正确(我可以看到这一点,因为我的测试正在运行)。实际上,我正在指定一个单独的
baseUrl
以及一些
路径
映射,但我认为这不是我没有遇到的问题,而是(乍一看)脚本会消失,而不是永远不会出现。我会通读一遍though@jeremysawesome你的假设是错误的,r.js是必要条件optimizer@RobbertvandenBogerd真的吗?你确定这不是另一个名为“r.js”的随机JavaScript文件吗?您不能确定,您必须假设
r.js
文件是优化器。问题是:如果
r.js
不是RequireJS文件,那么OP就没有包含必要的文件。然而,在未来,我不会假设,我会简单地问“你包括require.js文件吗?因为屏幕截图没有显示它。”@downvoter-有任何评论/理由进行downvoting吗?另一种验证/访问加载源的方法是通过Chrome Developer Tools中的网络选项卡。你可以右键点击源代码查看它。很有趣,这是我在你发布此消息前一个月提出的建议(见下文),但没有一次投票。@robertvandenbogerd除了jeremyawesome的答案外,我没有看到任何答案。如果你的意思是你对这个答案的评论,那么是的,那是真的-你应该把它作为一个单独的答案发布@RobbertvandenBogerd+1来自未来的成长经历!