这个文件:node_modules\cypress\bin\cypress
外面的内容:
#!/usr/bin/env node
require('../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 客户端:
未完待续。