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 相关文章推荐
jquery插件jbox使用iframe关闭问题
Feb 09 Javascript
实现png图片和png背景透明(支持多浏览器)的方法
Sep 08 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
Jan 15 Javascript
jquery操作checkbox实现全选和取消全选
May 02 Javascript
javascript的tab切换原理与效果实现方法
Jan 10 Javascript
js判断复选框是否选中及选中个数的实现代码
May 30 Javascript
JS实现页面内跳转的简单代码
Sep 03 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
Aug 16 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
Nov 06 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
Feb 26 Javascript
React+EggJs实现断点续传的示例代码
Jul 07 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
Jul 16 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 set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
javascript表单验证大全
2015/08/12 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
学习javascript的闭包,原型,和匿名函数之旅
2015/10/18 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
Vue多组件仓库开发与发布详解
2019/02/28 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
2014/07/18 Python
Python爬虫实例扒取2345天气预报
2018/03/04 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
护理专业优质毕业生自荐书
2014/01/31 职场文书
自荐信的格式
2014/03/10 职场文书
优秀团支部申报材料
2014/12/26 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技