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的trim,ltrim,rtrim自定义函数
Sep 21 Javascript
Javascript 获取链接(url)参数的方法
Feb 15 Javascript
封装html的select标签的js操作实例
Jul 02 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
Nov 19 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
Dec 11 Javascript
jQuery中操控hidden、disable等无值属性的方法
Jan 06 Javascript
js关于精确计算和数值格式化以及直接引js文件
Jan 28 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
Aug 04 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
Sep 12 Javascript
js中getBoundingClientRect的作用及兼容方案详解
Feb 01 Javascript
vue select组件的使用与禁用实现代码
Apr 10 Javascript
浅谈Vue render函数在ElementUi中的应用
Sep 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引用返回与取消引用的详解
2013/06/08 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
Python爬取附近餐馆信息代码示例
2017/12/09 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
学校节能减排方案
2014/06/13 职场文书
社区清明节活动总结
2014/07/04 职场文书
力学专业求职信
2014/07/23 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server