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