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入门——事件机制之事件中的冒泡现象示例解释
Sep 12 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
jQuery中ajax的get()方法用法实例
Dec 26 Javascript
JS实现往下不断流动网页背景的方法
Feb 27 Javascript
jQuery插件datatables使用教程
Apr 21 Javascript
Wireshark基本介绍和学习TCP三次握手
Aug 15 Javascript
浅谈Angularjs link和compile的使用区别
Oct 21 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
Jan 08 Javascript
extjs简介_动力节点Java学院整理
Jul 17 Javascript
Vue使用json-server进行后端数据模拟功能
Apr 17 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
Dec 07 Javascript
JavaScript前端面试扁平数据转tree与tree数据扁平化
Jun 14 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截取汉字乱码问题解决方法mb_substr函数的应用
2008/03/30 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
JS中表单的使用小结
2014/01/11 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python学习教程之常用的内置函数大全
2017/07/14 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
中国旅游网站:同程旅游
2016/09/11 全球购物
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
心得体会怎么写
2013/12/30 职场文书
2014应届本科生自我评价
2014/09/13 职场文书
学习计划书怎么写
2014/09/15 职场文书
党支部四风整改方案
2014/10/25 职场文书
助学感谢信范文
2015/01/21 职场文书
保管员岗位职责
2015/02/14 职场文书
培训通知
2015/04/17 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL
MySQL日期时间函数知识汇总
2022/03/17 MySQL
Python+DeOldify实现老照片上色功能
2022/06/21 Python