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对象之间的转换 jQuery对象和原声DOM
Mar 07 Javascript
jquery放大镜效果超漂亮噢
Nov 15 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
Jun 23 Javascript
JavaScript模拟实现继承的方法
Mar 30 Javascript
javascript Array 数组常用方法
Apr 05 Javascript
jquery点击缩略图切换视频播放特效代码分享
Sep 15 Javascript
Centos6.8下Node.js安装教程
May 12 Javascript
原生JS发送异步数据请求
Jun 08 Javascript
使用puppeteer破解极验的滑动验证码
Feb 24 Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
ant design vue datepicker日期选择器中文化操作
Oct 28 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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
PHP进程通信基础之信号
2017/02/19 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
2011/06/27 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
详解JavaScript中数组和字符串的lastIndexOf()方法使用
2016/03/13 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
JS正则匹配URL网址的方法(可匹配www,http开头的一切网址)
2017/01/06 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
js实现简单的随机点名器
2020/09/17 Javascript
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
python先序遍历二叉树问题
2017/11/10 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
傲盾软件面试题
2015/08/17 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
父亲八十大寿答谢词
2014/01/23 职场文书
消防安全管理制度
2014/02/01 职场文书
企业总经理任命书
2014/06/05 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年体育工作总结
2014/11/24 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
欧元符号 €
2022/02/17 杂记