Next.js(React)项目yarn安装next-auth版本不兼容报错解决
问题现象
通过yarn create next-app创建React技术栈的Next.js项目后,无法正常安装next-auth依赖,本地环境为Node 16.15.1(LTS)、Yarn 1.22.18、npm 8.9.0,切换多个Node版本重试安装均报相同错误,安装时输出报错如下:
yarn add v1.22.18 warning ../../../package.json: No license field [1/4] Resolving packages... [2/4] Fetching packages... error next-auth@4.3.4: The engine "node" is incompatible with this module. Expected version "^12.19.0 || ^14.15.0 || ^16.13.0". Got "18.2.0" error Found incompatible module.
报错根因
安装中断是Yarn的依赖引擎校验拦截导致:执行安装命令时终端实际生效的Node版本为18.2.0,而当前拉取的next-auth@4.3.4版本支持的Node范围是^12.19.0 || ^14.15.0 || ^16.13.0,版本不匹配直接终止安装。之前切换Node版本后重试仍报错,本质是版本切换没有在当前执行安装的终端窗口生效,运行安装命令时调用的还是18.2.0版本的Node。
可落地解决方案
按实际开发需求选以下任意一种方案即可解决:
- 方案1:校准本地生效的Node版本
在执行安装命令的同一个终端窗口先跑node -v,如果输出不是v16.15.1,说明之前的版本切换未生效。如果用nvm管理Node版本,先执行nvm use 16.15.1,再次确认node -v输出为v16.15.1后,重新执行yarn add next-auth即可正常安装。 - 方案2:跳过Yarn引擎校验安装
如果不想调整当前Node版本,直接加参数跳过引擎校验执行安装:
如果需要永久对当前项目关闭引擎校验,避免后续装其他依赖也报同类错误,在项目根目录新建或修改yarn add next-auth --ignore-engines.yarnrc文件,写入以下配置即可,后续安装依赖不需要再加额外参数:ignore-engines true - 方案3:安装适配高版本Node的next-auth版本
如果需要保留Node 18版本做开发,不需要降级Node,next-auth从4.10.0及以上版本已经原生支持Node 18,直接执行以下命令安装最新稳定版即可,不会触发引擎不兼容报错:yarn add next-auth@latest
内容的提问来源于stack exchange,提问作者Pavitar Sharma
相关产品推荐
相关产品推荐

