创建 React App Rewired 应用程序忽略 jest.config.js

Ale*_*lex 4 configuration config create-react-app ts-jest

我有一个使用“创建反应应用程序重新连线”创建的反应应用程序。我已经安装了 ts-jest 并且希望能够自定义 Jest。我阅读了 ts-jest 的文档并npx ts-jest config:init在项目的根级别执行以创建初始配置文件。为了测试 jest 是否确实使用该配置文件,我console.log(window);在示例测试文件中编写了以下行,并修改了配置,将其testEnvironment设置为“node”。

我预计测试会因window未定义而失败,但我正在恢复窗口对象。我尝试将文件重命名为jest.config.ts,但得到了相同的结果。

我对所有文件进行了全局搜索,以查看是否有另一个配置文件覆盖了我的配置,但没有找到。

我究竟做错了什么?我知道 jest 是通过 create-react-app (CRA) 预先打包的。我想 create-react-app-rewired 只会包含 CRA 之上的一些包装器,那么它从哪里获取配置呢?

Ale*_*lex 7

我开始意识到 create-react-app-rewired 包与这个问题无关,因为它只是一个包装器包,公开一个configure-overrides.js文件以允许开发人员修改由 create-react-app 管理的 webpack 配置。

jest.config.ts我创建的或配置文件jest.config.js没有任何效果,因为创建反应应用程序(CRA)将在后台生成并使用自己的笑话配置文件。

我在研究另一个问题时偶然发现了这一点。dstapleton92 在 GitHub 上的评论帮助我得出了这个结论。

Create React App 支持通过文件中的“jest”属性覆盖某些值package.json。在检查CRA 中的 jest 配置工厂函数时,testEnvironment属性被硬编码为“jsdom”,并且密钥不会作为可重写属性列表的一部分公开。

这就是为什么我的尝试没有成功的原因。