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----文件操作
Jan 18 Javascript
JavaScript词法作用域与调用对象深入理解
Nov 29 Javascript
JS获取随机数函数可自定义最小值最大值
May 08 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
May 11 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
Javascript函数式编程简单介绍
Oct 11 Javascript
用JS动态改变表单form里的action值属性的两种方法
May 25 Javascript
javascript和php使用ajax通信传递JSON的实例
Aug 21 Javascript
详解ES6 Symbol 的用途
Oct 14 Javascript
详解关于Vuex的action传入多个参数的问题
Feb 22 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
Nov 04 Javascript
JS面向对象编程实现的拖拽功能案例详解
Mar 03 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
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
PHP代码审核的详细介绍
2013/06/13 PHP
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
jQuery自动或手动图片切换效果
2017/10/11 jQuery
移动前端图片压缩上传的实例
2017/12/06 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
python文件和目录操作方法大全(含实例)
2014/03/12 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
Python匿名函数及应用示例
2019/04/09 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
python中os包的用法
2020/06/01 Python
python和c语言哪个更适合初学者
2020/06/22 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
实习单位接收函
2014/01/11 职场文书
小学二年级学生评语
2014/04/21 职场文书
食品安全工作方案
2014/05/07 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
校车安全管理责任书
2015/05/11 职场文书
图书馆义工感想
2015/08/07 职场文书
小学副班长竞选稿
2015/11/21 职场文书
二年级数学教学反思
2016/02/16 职场文书
导游词之崇武古城
2019/10/07 职场文书