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 相关文章推荐
jQuery(js)获取文字宽度(显示长度)示例代码
Dec 31 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
Jan 07 Javascript
javaScript如何处理从java后台返回的list
Apr 24 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
Aug 23 Javascript
EsLint入门学习教程
Feb 17 Javascript
JavaScript实现256色转灰度图
Feb 22 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
Mar 25 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
Jul 13 Javascript
详解如何制作并发布一个vue的组件的npm包
Nov 10 Javascript
使用vue开发移动端管理后台的注意事项
Mar 07 Javascript
详解Vue2.5+迁移至Typescript指南
Aug 01 Javascript
uni-app 微信小程序授权登录的实现步骤
Feb 18 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源码之explode使用说明
2011/08/05 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
Javascript前端UI框架Kit使用指南之kitjs事件管理
2014/11/28 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
解决vue-loader加载不上的问题
2020/10/21 Javascript
TensorFlow实现创建分类器
2018/02/06 Python
pip命令无法使用的解决方法
2018/06/12 Python
Python中函数参数调用方式分析
2018/08/09 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
汽车专业大学生职业生涯规划范文
2014/01/07 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
幼儿园保育员责任书
2014/07/22 职场文书
机关职员工作检讨书
2014/10/23 职场文书
人民的好儿女观后感
2015/06/18 职场文书
教师节校长致辞
2015/07/31 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
Ruby处理YAML和json数据
2022/04/18 Ruby
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle