构建Next.js应用时遇'react'未导出'use'错误求助
问题原因及解决方法
问题原因
next-view-transitions包的当前版本依赖了React的**use钩子**,这个API是React 18.3及以上版本才新增的,而你的项目React版本低于18.3,无法识别该导出,导致构建时触发'use' is not exported from 'react'错误。- 报错根源在
./node_modules/next-view-transitions/dist/index.js文件中,该文件直接从react导入了use函数,但你的React版本并没有这个导出,从而引发模块解析错误。
解决方法
方法1:升级React到兼容版本
直接将React和React DOM升级到18.3及以上版本,执行以下命令:
# npm npm install react@latest react-dom@latest # yarn yarn add react@latest react-dom@latest # pnpm pnpm add react@latest react-dom@latest
升级完成后重启开发服务器,重新构建项目即可。
方法2:降级next-view-transitions到旧版本
如果不想升级React,可以选择该包不依赖use钩子的旧版本安装。先查找包的版本历史,确认哪个版本未引入use API,再执行安装命令:
npm install next-view-transitions@x.x.x
把命令中的x.x.x替换为具体的旧版本号(比如0.1.1,需自行验证该版本是否满足你的功能需求)。
方法3:临时补丁(应急方案,不推荐长期使用)
如果前两种方法暂时无法实施,可以用patch-package给包打补丁:
- 安装
patch-package开发依赖:
npm install patch-package --save-dev
- 打开
./node_modules/next-view-transitions/dist/index.js,找到导入use的代码行,根据当前React版本的API替换或移除对use的依赖(比如用useEffect等现有钩子替代)。 - 生成补丁文件:
npx patch-package next-view-transitions
- 后续执行
npm install时,补丁会自动应用到该包上。
内容的提问来源于stack exchange,提问作者Nyochembeng Nkengafack
相关产品推荐
相关产品推荐

