React-Native项目EAS iOS构建Node版本不匹配问题求助
问题分析与解决方法
问题根源
你遇到的核心问题不是本地Node版本,而是EAS云端构建环境默认使用了Node 16.18.1,和你package.json中指定的18.18.0不匹配。本地的Node版本、nvm配置只影响本地开发,对云端构建环境没有作用。
是否需要切换到npm?
不需要。换npm不是问题的根源,yarn本身没有问题,只要云端环境的Node版本符合要求,yarn就能正常工作。
解决步骤
方法1:通过eas.json指定Node版本
在项目根目录的eas.json(没有则创建)中,为iOS构建配置指定Node版本:
{ "build": { "default": { "ios": { "node": "18.18.0" } }, // 如有其他构建环境(如production/development),同步添加配置 "production": { "ios": { "node": "18.18.0" } } } }
方法2:添加.nvmrc文件
在项目根目录创建.nvmrc文件,内容直接写入目标Node版本:
18.18.0
EAS构建会自动读取该文件,使用对应的Node版本执行构建。
方法3:确认package.json的engines配置
你已经配置了正确的engines,确保该配置存在且无误:
"engines": { "node": "18.18.0", "yarn": "^1.22.17" },
验证
配置完成后重新执行eas build --platform ios,查看构建日志的依赖安装阶段,应该会显示使用Node 18.18.0执行yarn install。
内容的提问来源于stack exchange,提问作者Mandella90
相关产品推荐
相关产品推荐

