模拟文件是否捆绑在构建中?

Do mock files get bundled in the build?

我正在使用 create-react-app

为了测试 React 组件,我使用 Jest 和模拟文件。

我将测试文件和附加模拟文件放在组件旁边,就像这样的文件结构:

components
- account
-- Account.js
-- Account.test.js
-- __mocks.js
- another-feature
....

当我 运行 yarn build 时,模拟文件也会被捆绑吗?

Yarn(或 npm)依赖于您指定的入口点。然后 webpack 从入口点开始遍历每个 import。然后会发生 tree-shaking。最后所有收集到的东西都打包了。

Jest 以不同的方式工作:它通过文件名模式搜索测试、模拟和快照。然后每个单独的测试文件都成为 webpack 的入口点,而 运行.

所以这些是 2 个独立的流程,特殊的 files/directories(如 __mocks__)或仅测试文件所需的文件(如你的情况下的 __mocks.js)不会转到捆绑。