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最常用与实用的创建类的代码
Aug 12 Javascript
jquery插件制作 自增长输入框实现代码
Aug 17 jQuery
js获取当前月的第一天和最后一天的小例子
Nov 18 Javascript
Jquery实现控件的隐藏和显示实例
Feb 08 Javascript
jquery实现弹出层登录和全屏层注册特效
Aug 28 Javascript
jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
Oct 30 Javascript
针对JavaScript中this指向的简单理解
Aug 26 Javascript
AngularJS入门教程之模块化操作用法示例
Nov 02 Javascript
微信小程序 chooseImage选择图片或者拍照
Apr 07 Javascript
详解微信小程序审核不通过的解决方法
Jan 17 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
Jul 20 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
Nov 05 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自动加载的两种实现方法
2010/06/21 PHP
Array of country list in PHP with Zend Framework
2011/10/17 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
关于使用js算总价的问题
2017/06/23 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python中reload(module)的用法示例详解
2017/09/15 Python
python安装numpy&安装matplotlib& scipy的教程
2017/11/02 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
如何用Django处理gzip数据流
2021/01/29 Python
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
大学毕业感言一句话
2014/02/06 职场文书
建筑工地质量标语
2014/06/12 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
小学生安全教育心得体会
2016/01/15 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
欧元符号 €
2022/02/17 杂记