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 相关文章推荐
extjs grid设置某列背景颜色和字体颜色的方法
Sep 03 Javascript
网页中返回顶部代码(多种方法)另附注释说明
Apr 24 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
Jul 12 Javascript
微信小程序前端源码逻辑和工作流
Sep 25 Javascript
Vue之Vue.set动态新增对象属性方法
Feb 23 Javascript
layer.confirm取消按钮绑定事件的方法
Aug 17 Javascript
Vue.js更改调试地址端口号的实例
Sep 19 Javascript
微信小程序实现的绘制table表格功能示例
Apr 26 Javascript
JavaScript碰撞检测原理及其实现代码
Mar 12 Javascript
js实现车辆管理系统
Aug 26 Javascript
JavaScript实现4位随机验证码的生成
Jan 28 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求一个网段开始与结束IP地址的方法
2015/07/09 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
万能的php分页类
2017/07/06 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
js遍历td tr等html元素
2012/12/13 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
vue项目在线上服务器访问失败原因分析
2020/08/14 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
2020/12/14 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
竞争与合作演讲稿
2014/05/12 职场文书
校庆口号
2014/06/20 职场文书
住房租房协议书
2014/08/20 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
员工试用期自我评价
2014/09/18 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
小马王观后感
2015/06/11 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js
Python pyecharts绘制条形图详解
2022/04/02 Python