You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

@testing-library/react与最新依赖兼容问题:找不到react-dom/client模块

测试报错:找不到'react-dom/client'模块

报错内容:

Cannot find module 'react-dom/client' from 'node_modules/@testing-library/react/dist/pure.js'

触发报错的代码行:

import { render } from '@testing-library/react';

当前用到的所有依赖均为最新版本:

  • @testing-library/react
  • react
  • @types/react
  • react-dom
  • @types/react-dom
  • jest
  • @types/jest
  • ts-jest

解决办法

出现这个错的原因很直接:最新版的@testing-library/react默认依赖React 18新增的react-dom/client API,但如果你的项目实际用的是React 17及更早版本,就会找不到这个模块。

方案1:降级测试库到兼容版本

如果项目暂时没法升级到React 18,直接安装适配旧版本React的@testing-library/react即可:

npm install @testing-library/react@12 --save-dev
# 用yarn的话
yarn add @testing-library/react@12 --dev

12版本的测试库适配React 17及更早版本,不会调用react-dom/client相关API。

方案2:升级项目适配React 18

如果项目可以升级到React 18(你已经安装了最新版的react和react-dom,大概率已经是18版本),只需确认项目入口文件是否改成React 18的渲染方式:
检查index.tsx/index.jsx,把原来的ReactDOM.render写法替换为:

import { createRoot } from 'react-dom/client';
const root = createRoot(document.getElementById('root')!);
root.render(<App />);

改完后测试环境就能正确识别模块。

方案3:检查TypeScript配置

如果是TS项目,确认tsconfig.json里的moduleResolution设置为node,确保模块解析路径正确:

{
  "compilerOptions": {
    "moduleResolution": "node"
  }
}

内容的提问来源于stack exchange,提问作者Kirk Strobeck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 02:10:01