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 相关文章推荐
FireFox下XML对象转化成字符串的解决方法
Dec 09 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
前端面试知识点锦集(JavaScript篇)
Dec 28 Javascript
用vue和node写的简易购物车实现
Apr 25 Javascript
Vue2.x中的Render函数详解
May 30 Javascript
Angular2监听页面大小变化的解决方法
Oct 09 Javascript
AngularJS select加载数据选中默认值的方法
Feb 28 Javascript
微信小程序自定义导航教程(兼容各种手机)
Dec 12 Javascript
JS面向对象之单选框实现
Jan 17 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
Feb 11 Javascript
vue实现顶部菜单栏
Nov 08 Javascript
vue+iview实现文件上传
Nov 17 Vue.js
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中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
php实现点击可刷新验证码
2015/11/07 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
JQuery调webservice实现邮箱验证(检测是否可用)
2013/05/21 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
总结js函数相关知识点
2018/02/27 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python 可爱的大小写
2008/09/06 Python
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
Python 基础教程之包和类的用法
2017/02/23 Python
Python实现的栈(Stack)
2018/01/26 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
python list多级排序知识点总结
2019/10/23 Python
Python中求对数方法总结
2020/03/10 Python
查看keras的默认backend实现方式
2020/06/19 Python
Alpine安装Python3依赖出现的问题及解决方法
2020/12/25 Python
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
大学班级干部的自我评价分享
2014/02/10 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers
解决Windows Server2012 R2 无法安装 .NET Framework 3.5
2022/04/29 Servers