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

升级react-scripts至5.0.1后@heroicons/react报错如何解决

报错原因

该问题由依赖版本兼容问题导致:

  • react-scripts 5.0.1 内置构建工具升级为 webpack 5,对 ESM 模块的导入导出校验逻辑更严格,不再兼容旧的CommonJS/ESM混用的模糊写法
  • 项目中安装的@heroicons/react版本过低,旧版本ESM产物使用import * as React from 'react'导入React后,通过React.createElement、React.forwardRef的方式调用API,这种写法在webpack 5的ESM校验规则下会被判定为未从react模块导入对应导出项,直接抛出编译错误。
修复方案

按优先级选择以下方案即可:

  • 方案1:升级@heroicons/react到最新大版本
    执行安装命令升级到v2+版本,官方已完全适配webpack 5的ESM解析规则:
    npm install @heroicons/react@latest
    注意v2版本调整了图标导入路径和部分图标命名,原有导入路径@heroicons/react/outline需要修改为@heroicons/react/24/outline,如果要保留原有图标名可以在导入时加别名,例如:
    import { Bars3Icon as MenuIcon } from '@heroicons/react/24/outline'
  • 方案2:固定安装v1分支的兼容补丁版本(无需修改业务代码)
    如果不想调整现有业务代码的导入逻辑,直接安装v1分支的最终修复版即可,该版本已经修正了React的ESM导入写法:
    npm install @heroicons/react@1.0.6
  • 方案3:清理缓存重装依赖
    如果执行完上述版本调整后仍报错,先删除node_modules文件夹和对应锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新执行npm install安装全量依赖,清除本地缓存的旧版本依赖副本即可。

注意:不要手动修改node_modules内的依赖源码,重新安装依赖时会覆盖修改,无法永久解决问题。

内容的提问来源于stack exchange,提问作者Sam-Dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 05:18:28