为啥调试器要求我再次弹出?

Posted

技术标签:

【中文标题】为啥调试器要求我再次弹出?【英文标题】:Why does debugger ask me to eject again?为什么调试器要求我再次弹出? 【发布时间】:2019-03-18 10:32:43 【问题描述】:

我正在考虑 create-react-app 并尝试了弹出选项。在“纱线弹出”之后,我正在尝试通过终端进行调试:

> react-scripts --inspect-brk test --runInBand

Debugger listening on ws://127.0.0.1:9229/45316de1-972e-47ab-9ce8-7ce2f183a378
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.

点击 chrome://inspect/#devices 中的检查链接时,控制台会打开并显示:

开箱即用,Create React App 仅支持覆盖这些 Jest 选项: • collectCoverageFrom • coverageReporters • coverageThreshold • globalSetup • globalTeardown • resetMocks • resetModules • snapshotSerializers • watchPathIgnorePatterns.这些 您的 package.json Jest 配置中的选项当前不是 Create React App 支持: • 解析器 • setupFiles • testMatch • testEnvironment • testURL • transform • transformIgnorePatterns • moduleNameMapper • moduleFileExtensions如果你想覆盖 其他 Jest 选项,您需要从默认设置中弹出。你可以 通过运行 npm runeject 来做到这一点,但请记住这是单向的 手术。你也可以向 Create React App 提出问题来讨论 支持更多开箱即用的选项。

这很奇怪,因为我以为我已经运行了弹出?

【问题讨论】:

【参考方案1】:

react-scripts 是 unejected create-react-app 运行的可执行文件,因此无论项目是否被弹出,都会产生此消息。

npm run eject 将弹出项目scripts 中的react-scripts 替换为实际命令。在弹出的项目中,预计npm run test会直接执行jest,而不是react-scripts test

如果打算为 Node 提供额外的参数,它可能是这样的:

node --inspect-brk node_modules/.bin/jest test --runInBand

【讨论】:

chrome / jest 的任何替代方案来调试 js 单元测试? 我会选择 Chrome。如果单元测试被隔离并且包含足够的断言,通常我不需要调试它。如果断言失败,则会列出您可能要调试的值。如果 Jest 使用 CI 远程运行,您将无法调试它,但您需要从报告中找出问题所在。

以上是关于为啥调试器要求我再次弹出?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的电脑开机就会弹出visual Studio 实时调试器啊?而且点击否就蓝屏,谢谢

为啥调试我的asp.net网站时有时会弹出反汇编程序/反汇编窗口?

为啥在运行C#时会弹出找不到调试类型coreclr调试适配器描述符?

为啥我不能远程调试?我怎么能找出原因?

为啥在 Edge 中调试我的 asp.net core 2.0 应用程序时显示“您需要一个新应用程序才能打开此本地主机”弹出窗口?

为啥 firebug 在调试时会改变网站的行为?