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常见注意事项
Jan 01 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
May 18 Javascript
jQuery实现的动态伸缩导航菜单实例
May 07 Javascript
jQuery Raty 一款不错的星级评分插件
Aug 24 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
Nov 16 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
Mar 30 Javascript
react-native-fs实现文件下载、文本存储的示例代码
Sep 22 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
Mar 07 Javascript
如何基于原生javaScript生成带图片的二维码
Nov 21 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
Jul 26 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
php桥接模式应用案例分析
2019/10/23 PHP
让焦点自动跳转
2006/07/01 Javascript
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
JavaScript原生实现观察者模式的示例
2017/12/15 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
简单讲解Python编程中namedtuple类的用法
2016/06/21 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
基于Python的文件类型和字符串详解
2017/12/21 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
深入浅析python变量加逗号,的含义
2020/02/22 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
python如何代码集体右移
2020/07/20 Python
Python爬取某平台短视频的方法
2021/02/08 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
Chemist Warehouse官方海外旗舰店:澳洲第一连锁大药房
2017/08/25 全球购物
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
医院后勤自我鉴定
2013/10/13 职场文书
学生打架检讨书
2014/10/20 职场文书
离婚上诉状范文
2015/05/23 职场文书
李强感恩观后感
2015/06/17 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang