vscode 调试 node.js的方法步骤


Posted in Javascript onSeptember 15, 2020

引言

作为前端工程师经常打交道的开发工具无非 IDE 编辑器 和 Chrome,在 Chrome 中调试是非常方便的,直接在 开发者工具的 source 栏打断点就可以了。那么,如果遇到需要写 node 相关的代码,比如 webpack 配置项,应该怎么调试来实现我们的需求呢?

VS Code 配置

在 VS Code 中单独有 debug 的菜单,需要指定 launch.json 文件,该文件为 VS Code 提供启动调试所需的各项配置。

// launch.json
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

{
 "version": "0.2.0",
 "configurations": [
  {
   "type": "node",
   "request": "launch",
   "name": "Launch via NPM",
   "runtimeExecutable": "npm",
   "runtimeArgs": ["run-script", "debug"],
   "cwd": "${workspaceFolder}/envloader/mobile",
   "port": 9229
  }
 ]
}

上面是我们项目的调试配置, runtimeExecutable 指明调试方式是 npm 方式, runtimeArgs 为执行调试传的参数, cwd 指定工作目录。

// package.json

"scripts": {
  "debug": "node --max_old_space_size=12288 --inspect-brk node_modules/webpack/bin/webpack.js --config build/webpack.dev.js --watch"
 },

注意 debug 脚本要传入 --inspect-brk ,这样才可以开启 node 的调试功能。

VS Code 调试菜单点击执行按钮,我们就可以愉快的调试 webpack.dev.js 代码了。

vscode 调试 node.js的方法步骤

可以看到,webpack 内部的数据结构尽收眼底。

Chrome 开发者工具风格

刚才的 launch.json 中,有 port: 9229 这个属性,我们可以在浏览器访问 chrome://inspect ,就能以我们熟悉的 chrome 风格来调试 node 程序了。

vscode 调试 node.js的方法步骤

总结

调试程序能够帮助我们对代码有更深刻的了解,能够提供运行时的执行上下文、调用栈等信息。此外,在调试线上混淆后的代码时,对各种 a、o、f 等难以理解的变量名参数名也能通过运行时的变量数据轻易分析出代码的基本逻辑。

到此这篇关于vscode 调试 node.js的方法步骤的文章就介绍到这了,更多相关vscode 调试 node.js内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
Json和Jsonp理论实例代码详解
Nov 15 Javascript
写JQuery插件的基本知识
Nov 25 Javascript
jQuery 判断是否包含在数组中Array[]的方法
Aug 03 Javascript
javascript数据类型详解
Feb 07 Javascript
基于Vue.js 2.0实现百度搜索框效果
Dec 28 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
Sep 23 Javascript
vue2.0 + ele的循环表单及验证字段方法
Sep 18 Javascript
javascript设计模式 ? 原型模式原理与应用实例分析
Apr 10 Javascript
es6函数之尾调用优化实例分析
Apr 25 Javascript
HTML+JS实现在线朗读器
Feb 15 Javascript
js实现特别简单的钟表效果
Sep 14 #Javascript
仿照Element-ui实现一个简易的$message方法
Sep 14 #Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
Sep 14 #Javascript
JavaScript 如何计算文本的行数的实现
Sep 14 #Javascript
JavaScript实现串行请求的示例代码
Sep 14 #Javascript
浅谈JavaScript 声明提升
Sep 14 #Javascript
详解vue 中 scoped 样式作用域的规则
Sep 14 #Javascript
You might like
一些星际专用术语解释
2020/03/04 星际争霸
用 php 编写的日历
2006/10/09 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
试用php中oci8扩展
2015/06/18 PHP
php数据访问之增删改查操作
2016/05/09 PHP
php-app开发接口加密详解
2018/04/18 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
python中的随机函数random的用法示例
2018/01/27 Python
用python编写第一个IDA插件的实例
2018/05/29 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
检讨书格式
2015/01/23 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
如何在Python项目中引入日志
2021/05/31 Python
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
spring boot中nativeQuery的用法
2021/07/26 Java/Android