VSCode launch.json配置详细教程


Posted in Javascript onJune 18, 2020

vscode原文地址

以下为vscode 的node.js debugger 的 launch.json 配置详情:

启动配置必须设定请求类型,属性request , 分为launch(启动) 和 attach(附加)两种 ,看下面例子:

{
 "version": "0.2.0",
 "configurations": [
  {
   ...
   "request": "launch", //请求类型为启动

  },
  {
  ...
   "request": "attach", //请求类型为附加

  }
 ]
}

下面是launch 和 attach 类型共有的属性:

  • protocol 设置调试协议
  • auto 尝试自动检测目标运行时使用的协议
  • inspector 新的V8调试器协议,解决遗留版本的多数问题,node versions >= 6.3 and Electron versions >= 1.7.4.
  • legacy 原始的v8调试器协议,node versions < v8.0 and Electron versions < 1.7.4.
  • port调试使用的端口
  • address TCP/IP地址,用于远程调试
  • localRoot 远程调试时映射的本地地址
  • remoteRoot 远程调试时的远程目录地址
  • sourceMaps 默认为true
  • outFiles 当map文件不在js文件同目录时用于指定 sourceMaps的位置
  • restart 自动重启调试
  • timeout 配置自动附加的超时时间
  • stopOnEntry 自动断点到第一行代码处
  • smartStep 自动跳过未映射到源代码的代码
  • skipFiles :[]String,指定跳过单步调试的代码
"skipFiles": [
 "${workspaceFolder}/node_modules/**/*.js", //跳过node_modules
 "${workspaceFolder}/lib/**/*.js",//跳过lib
 "<node_internals>/**/*.js"//跳过node核心模块
 ]

trace启用诊断输出

以下是特定于类型 launch(启动)的配置属性:

  • program 指定调试入口文件地址
  • args :[]String 传递给程序的参数,可在process.argv拿到
  • cwd 指定程序启动调试的目录 ,当vscode启动目录不是项目根目录,并且调试npm script时非常有用
  • runtimeExecutable 设置运行时可执行文件路径,默认是node
  • 可以是其他的执行程序,如npm、nodemon
  • runtimeArgs 传递给运行时可执行文件的参数,例如:
{
   "type": "node",
   "request": "launch",
   "name": "npm launch app",
   "args":["a"],
   "runtimeExecutable": "npm",
   "runtimeArgs": [
    "run-script",
    "app",
    "b"
   ],
   "port": 6666
  }

打印参数可以发现 args 、runtimeArgs都会传给程序,但是runtimeArgs参数会紧跟可执行文件

VSCode launch.json配置详细教程

  • runtimeVersion 设置运行时可执行程序的版本,如果使用nvm,可以切换node.js版本
  • env 添加额外的环境变量
  • envFile 文件加载环境变量
  • console 配置终端可以是外部终端或者内部集成终端,默认值internalConsole
  • outputCapture -如果设置为std,则进程stdout / stderr的输出将显示在调试控制台中,而不是侦听调试端口上的输出。这对于直接写入stdout / stderr流而不是使用console.*API的程序或日志库很有用。
  • autoAttachChildProcesses 跟踪调试对象的所有子过程,并自动附加到在调试模式下启动的子过程

以下是特定于类型 attach(附加)的配置属性:

  • processId 指定nodejs进程id,由于每次启动都会变,传入"${command:PickProcess}"

questions:

1. 如果使用了符号链接怎么调试?

传递参数:

{
 "runtimeArgs": ["--preserve-symlinks"]
}

如果主脚本也在符号链接路径里面,需要再传递一个参数"--preserve-symlinks-main",支持的版本是 Node 10+.

2. 如何调试ECMAScript模块?

如果使用esm或传递--experimental-modules给Node.js以便使用ECMAScript模块,则可以传递这些选项通过runtimeArgs属性:

  • "runtimeArgs" : ["--experimental-modules"] -使用Node v8.5.0 +中的实验性ECMAScript模块支持
  • "runtimeArgs" : ["-r", "esm"] -使用esm ES模块加载器(请注意,["-r esm"]如果没有逗号,则无法使用)

总结

到此这篇关于VSCode launch.json配置详细教程的文章就介绍到这了,更多相关VSCode launch.json配置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript的9个陷阱及评点分析
May 16 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
Apr 01 Javascript
JS中获取数据库中的值的方法
Jul 14 Javascript
jquery正则表达式验证(手机号、身份证号、中文名称)
Dec 31 Javascript
微信小程序删除处理详解
Aug 16 Javascript
微信小程序自动客服功能
Nov 02 Javascript
JavaScript使用类似break机制中断forEach循环的方法
Nov 13 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 Javascript
微信小程序实现点击图片放大预览
Oct 21 Javascript
前端深入理解Typescript泛型概念
Mar 09 Javascript
vue element el-transfer增加拖拽功能
Jan 15 Vue.js
js判断两个数组相等的5种方法
May 06 Javascript
JavaScript中使用Spread运算符的八种方法总结
Jun 18 #Javascript
通过实例了解JS执行上下文运行原理
Jun 17 #Javascript
从0搭建vue-cli4脚手架
Jun 17 #Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 #Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
Jun 17 #Javascript
vue移动端的左右滑动事件详解
Jun 17 #Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 #Javascript
You might like
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
浅析JSONP技术原理及实现
2016/06/08 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
浅谈Vue SPA 首屏加载优化实践
2017/12/15 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
python进阶教程之文本文件的读取和写入
2014/08/29 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
PHP面试题-$message和$$message的区别
2015/12/08 面试题
广州一家公司的.NET面试题
2016/06/11 面试题
医学生自我鉴定范文
2013/11/08 职场文书
电气技术员岗位职责
2013/11/19 职场文书
师生聚会感言
2014/01/26 职场文书
初中生自我评价
2014/02/01 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
2014大学生职业生涯规划书最新范文
2014/09/13 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
Java实现聊天机器人完善版
2021/07/04 Java/Android
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技
git stash(储藏)的用法总结
2022/06/25 Servers