10

我在 WebStorm 中有以下配置设置:

在此处输入图像描述

当我单击调试时,它会很好地启动 Chrome 并导航到该页面,但我的断点永远不会被命中。它以某种方式连接,因为我console.log()在 WebStorm 中看到了所有输出。

我正在尝试导航到屏幕截图中指定的 URL,并在中设置断点main.js,但它没有按预期工作(请参阅:根本)。我不确定我错过了什么。我尝试在远程 URLmain.js部分为特定文件设置远程 URL ,但这也无济于事。

作为参考,我通过bra run和运行应用程序npm run watch

快速更新

所以我实际上已经能够获得一个断点,但它位于不同的文件中(在不同的路径中):

../public/app/core/routes/dashboard_loaders.ts允许我在断点处停止,但../public/dashboards不允许。

在此处输入图像描述

当我导航到http://localhost:3000/dashboard/script/main.js?orgId=1时,它会到达路线:

.when('/dashboard/:type/:slug', {
    templateUrl: 'public/app/partials/dashboard.html',
    controller : 'LoadDashboardCtrl',
    reloadOnSearch: false,
    pageClass: 'page-dashboard',
  })

最终确实会加载文件../public/dashboards/multi.js——但没有遇到断点。

进一步更新

看起来脚本是通过以下命令(in ../public/app/features/dashboard/dashboardLoaderSrv.js)提供的:

/*jshint -W054 */
var script_func = new Function('ARGS','kbn','dateMath','_','moment','window','document','$','jQuery', 'services', result.data);
var script_result = script_func($routeParams, kbn, dateMath, _ , moment, window, document, $, $, services);

$routeParams在哪里type:scriptslug:main.js- 如果我进入这个函数,我会得到一个与我的实际main.js文件相同的匿名(?)文件,但名称就像43550而不是main.js- 我认为这归结为根本缺乏 JavaScript 的知识处理我的一些事情。:)

4

1 回答 1

1

编辑:我发现使用 webstorm 和 grafana 的这个问题(第二次编辑)看起来像你。我认为他链接的内容通过声明 sourceUrl 来解决它,然后您的文件不是“匿名的”或者是动态的。

//# sourceURL=filename.js

IE

//# sourceURL=main.js

参考如何在浏览器的调试器中调试动态加载的 JavaScript(使用 jQuery)?


这是有关在 webstorm 中调试的文档和视频,以确保一切设置正确。(IE 我的默认设置是调试我的索引文件而不是我的项目)。确保您拥有他们的Chrome 扩展程序Firefox 扩展程序

Webstorm 中的通用 JS 调试

在 Webstorm 中调试 Chrome

在 Webstorm 中调试 Firefox

在 Webstorm 中调试 Node.JS

于 2017-12-17T23:36:13.357 回答