jetbrains系列使用教程与技巧

利用webstorm调试(debug)JavaScript应用(

2019-02-11  本文已影响32人  LucasLight

调试应用之前,首先分清楚两点:

一、调试node.js应用

二、调试浏览器应用


上述两种调试基本上常见有:

他们的基本运作原理是:

利用node.js引擎运行打包工具,打包你正在开发的项目,然后创建一个服务器,来响应你当前打包好的应用资源。

就本质上来说,和打包出几个静态资源,然后丢到nginx中做反向代理是一样的

所以我们一定要明白,如果是此时,你的调试的目标是什么?

答案是: 浏览器的前端应用。

那么我们知道了目标,其实你可以直接在浏览器打断点了,但是又因为webpack的混淆机制以及各种各样的tree shaking,往往你不能够直接的访问到你想要打断点的位置。
但是我们可以利用source-map机制来处理,或者直接连接chrome的JavaScript内核引擎来断点。
webstorm就是如此

我们在 run/Debug configurations 中配置好项目的参数

配置断点调试

说完了调试前端应用,我们说一下调试node.js应用

node.js调试应用 往往跟随者打包程序 webpack以及服务端框架
服务端框架包括:

  1. egg调试解决方案

最后补充一个webstorm调试异步方法的小技巧

官网截图

翻译:
webstorm 支持调试异步客户端程序上的JavaScript代码。在webstorm上面为异步程序打断点,停在异步代码上,断点马上就会击中你的异步程序,从而跳进异步方法。而一个新的调用栈也会建立在 Frames面板上。webstorm显示全部的调用栈,包括了最开始调用异步程序的调用栈。

这张图片展示了一个异步程序如何调试断点。
【【图】】
断点停留在了第三行,然后会在第五行停留,在第五行停留的时候,点击step into,断点就会停留在第五行(随即就会立刻进入第六行,你的异步调用栈)

这种异步调用默认就会触发,如果你不想要触发异步回调方法,你可以在Registry中设置 js.debugger.async.call.stack.depth 值为0

上一篇 下一篇

猜你喜欢

热点阅读