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

React16.13.1升级至17.0.2后报Can't resolve 'react/jsx-dev-runtime'如何解决

解决方案

方案1:启用新JSX转换(推荐,无需手动导入React)

  • 第一步:校验依赖完整性
    先确认package.json中react、react-dom版本均≥17.0.2,删除本地node_modules文件夹、package-lock.json/yarn.lock文件后重新执行依赖安装命令,避免缓存导致的React依赖文件缺失(react/jsx-dev-runtime是React 17内置导出模块,依赖安装正常的情况下必然存在)。
  • 第二步:修正Babel配置
    Next.js默认使用自带的next/babel预设,额外安装@babel/preset-react、@babel/plugin-transform-react-jsx反而会引发配置冲突。找到项目根目录下的.babelrc或babel.config.json文件,修改配置如下:
{
  "presets": [
    ["next/babel", {
      "preset-react": {
        "runtime": "automatic"
      }
    }]
  ]
}
  • 第三步:清理编译缓存
    删除项目根目录下的.next缓存文件夹,使用next dev --clean命令启动开发服务,确保新配置生效。

方案2:全局启用旧JSX转换(兜底方案)

如果暂时不需要使用新JSX转换的特性,可直接全局配置经典编译模式,无需逐个文件添加注释。
修改Babel配置如下:

{
  "presets": [
    ["next/babel", {
      "preset-react": {
        "runtime": "classic"
      }
    }]
  ]
}

修改完成后清理.next缓存,重启开发服务即可生效。

注意:如果项目配置了自定义webpack规则,需检查是否存在修改react解析路径的alias、externals配置,确保react解析指向正确的17.0.2版本安装路径,否则也会出现模块找不到的报错。

内容的提问来源于stack exchange,提问作者Oleksandr Illiushchenko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:09:01