这个文件:node_modules\cypress\bin\cypress

里面的内容:

#!/usr/bin/env noderequire('../lib/cli').init()

很多 require:

找到 init 方法:

我们执行的 yarn cypress:open, 执行的应该是这个 open.js 文件里的内容吧。

验证一下就知道了。在 open.js 里添加一行打印语句。如果我们重新执行 cypress:open, 并且看到了这条打印语句,说明我们的猜想是正确的:

果然,我们的猜想是正确的。

下一个问题:如何调试 cypress:open 这个启动过程本身?

我们再回到 .bin 文件夹下的 cypress.cmd 文件,如何知道运行时我们执行的是图例1 还是图例2 的 if 分支呢?故意将 if 分支里的路径胡乱修改一下,然后执行,根据报错的消息即可判断。

运行时,试图查找 cypress2,说明进入上图的 else 分支:

那么我们就给这个分支加上 --inspect-brk 的 option:

重新执行,现在应该就可以单步调试了:

果然,现在停在了 require('../lib/cli').init() 这行语句,我们就可以单步调试 Cypress 了:

开始单步调试,从 process.env 传递进来的命令行参数:open:

创建一个新的 command 实例:

这里加载 exec 文件夹下的 open.js 文件,执行对应的 module:

在 open.js module 的 start 函数里设置断点:

工作目录:

这里引入一个问题,这个 debug module 如何打开调试模式?

轻量级:

居然是这个 path:

C:\Users\I042416\AppData\Local\Cypress\Cache\8.5.0\Cypress

这还有一个 exe 文件:足足有 130 MB:

一个 windows 客户端:

未完待续。

Cypress 本身启动过程的调试相关推荐

  1. Bochs调试Linux内核6 - 启动过程调试 - 跳到bootsect引导程序执行

    接此,​​​​​​Bochs调试Linux内核5 - 启动过程调试 - 认识Bootsect.S_bcbobo21cn的专栏-CSDN博客 看一下,0x00007c11 这里是重复执行串传送:而后一条 ...

  2. 通过gdb调试分析Linux内核的启动过程

    作者:吴乐 山东师范大学 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验流程 1.打开环境 执 ...

  3. 关于 Cypress 的启动和 cy.visit 的调试

    npx 是 npm 自带的命令行工具: 在项目根目录下,使用命令行 npx cypress open 启动: 也可以利用 yarn 启动:yarn run cypress open 或者是直接执行 n ...

  4. Spring 容器的启动过程

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 本文来源:http://r6f.cn/b47K 一. 前言 ...

  5. linux系统配置之开机启动过程(centos)

    1.开机流程如下: 2.BIOS BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统".其实 ...

  6. WINCE6.0+S3C2443的启动过程---内核启动

    ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...

  7. Android系统进程间通信(IPC)机制Binder中的Server启动过程源代码分析

    原文地址: http://blog.csdn.net/luoshengyang/article/details/6629298 在前面一篇文章浅谈Android系统进程间通信(IPC)机制Binder ...

  8. Tomcat源码解析三:tomcat的启动过程

    Tomcat组件生命周期管理 在Tomcat总体结构 (Tomcat源代码解析之二)中,我们列出了Tomcat中Server,Service,Connector,Engine,Host,Context ...

  9. spring容器_Spring 容器的启动过程探秘

    一. 前言 Spring家族特别庞大,对于开发人员而言,要想全面征服Spring家族,得花费不少的力气.俗话说,打蛇打七寸,那么Spring家族的"七寸"是什么呢?我心目中的答案一 ...

最新文章

  1. mybatis中传入String类型参数异常
  2. 20款效果非常棒的 jQuery 插件分享
  3. 网络文件系统(samba、nfs、iscsi)
  4. JAVA设计模式--辛格尔顿
  5. 去除并替换hselect框右边的箭头的css方法
  6. awk 中 {print $1} 什么意思
  7. Date型时间获取每周第一天,每月第一天,每季第一天,每年第一天
  8. 加工中心宏程序生成器_宏程序G1铣锥度螺纹NPT
  9. 保存自动修复_模糊照片修清晰,使用自动修复软件,做出专业级老照片修复效果...
  10. 常见排序算法的时间复杂度汇总
  11. 生活之游戏中的心理学
  12. 利用旧电脑搭建NAS(黑群晖)
  13. linux 回收站目录,探索linux系统回收站与U盘中的.Trash文件夹区别之处
  14. calico更换ip地址池-k8s
  15. 给微信小程序页面加载背景图片解决方案
  16. 计算机教 学计划,计算机教学计划
  17. BI工具对比|Smartbi与亿信ABI两款BI数据看板软件对比
  18. anaconda环境安装搜不到的环境
  19. 常用文献管理软件比较
  20. 微信字号调整问题 html,微信H5适配 解决微信调整字体大小导致Html5页面混乱

热门文章

  1. 新兴顶级双非大学,计算机系毕业情况如何?
  2. 文档编辑器与远端文件存储(Summernote)
  3. UltraEdit编辑器打开其他软件编辑文件时出现中文乱码的解决方法
  4. 服务器主板最多能装几个cpu,主板装两颗CPU:性能会更强吗?
  5. 地震波ifft matlab,地震波观测系统的MATLAB仿真报告
  6. android录音波浪动画_Android 自定义 view 实现波浪动画进度条
  7. 存储网络RDMA:NVME over RDMA
  8. 推挽电路---采用二极管消除交越失真----克服交越失真的互补推挽输出电路图
  9. idea设置关键字颜色_IntelliJ IDEA配置颜色与字体
  10. Python学习笔记——数据分析之数据可视化工具实战案例:世界高峰数据可视化