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 相关文章推荐
通过event对象的fromElement属性解决热区设置主实体的一个bug
Dec 22 Javascript
jquery入门—编写一个导航条(可伸缩)
Jan 07 Javascript
引用外部js乱码问题分析及解决方案
Apr 12 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
Jun 24 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 Javascript
ExtJS4 动态生成的grid导出为excel示例
May 02 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
Mar 25 Javascript
javascript实现简单计算器效果【推荐】
Apr 19 Javascript
vue实现tab切换外加样式切换方法
Mar 16 Javascript
详解AngularJS 过滤器的使用
Jun 02 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 Javascript
JavaScript实现无限轮播效果
Nov 19 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
ExtJs的Date格式字符代码
2010/12/30 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
python中pygame模块用法实例
2014/10/09 Python
python中redis的安装和使用
2016/12/04 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
python ddt实现数据驱动
2018/03/14 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
python使用Geany编辑器配置方法
2020/02/21 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
大学生水文观测实习自我鉴定
2013/09/29 职场文书
毕业生求职推荐信
2013/11/04 职场文书
xxx同志考察材料
2014/02/07 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python