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 相关文章推荐
javascript  Error 对象 错误处理
May 18 Javascript
javascript 进阶篇2 CSS XML学习
Mar 14 Javascript
JavaScript设计模式之适配器模式介绍
Dec 28 Javascript
jQuery中noconflict函数的实现原理分解
Feb 03 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
Aug 26 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
Apr 07 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
May 12 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
May 27 Javascript
老生常谈Bootstrap媒体对象
Jul 06 Javascript
vue组件父子间通信之综合练习(聊天室)
Nov 07 Javascript
javascript实现前端成语点击验证
Jun 24 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
如何设置mysql允许外网访问
2013/06/04 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
Javascript模块模式分析
2008/05/16 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
关于js二维数组和多维数组的定义声明(详解)
2016/10/02 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
简单谈谈python中的多进程
2016/11/06 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
python 获取计算机的网卡信息
2021/02/18 Python
校本教研工作方案
2014/01/14 职场文书
护士求职自荐信范文
2014/03/19 职场文书
创新社会管理心得体会
2014/09/12 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
小学六年级班主任工作经验交流材料
2015/11/02 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
公司会议开幕词
2016/03/03 职场文书
Redis分布式锁的7种实现
2022/04/01 Redis
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android