React Native Cannot run program “node“问题

概述

说明:我的MAC系统版本是12.6.3,MAC系统13.2.1已经修复此问题。

前几天mac重装系统了,用Android studio重新构建React native项目时,报Cannot run program "node"错误。

电脑系统为macOS 12.6.3 (Monterey),M1 Pro芯片。设备信息如下图所示:
在这里插入图片描述
完整错误信息如下图所示:
在这里插入图片描述

错误分析

刚开始看到错误信息时,比较困惑,完全不知道错误是什么意思,查了一些资料后,才想起来,之前也遇到过同样的错误。

看了一些资料后,再回过头来仔细查看错误信息,发现错误信息还是比较明确。

// 错误原因:执行这一条命令失败,导致构建失败
:ReactNative:Running '[node,-e, console.log(require('react-native/cli').bin);]' command failed. 
// 发生错误的具体代码位置
*Where:
Script '/Users/xxx/xxx/xxx/node_modules/@react-native-community/cli-platform-android/native_modules.gradle' line:189
// 错误更详细原因,“node,-e, console.log(require('react-native/cli').bin);”这条命令执行,需要使用node,但无法运行node,所以报错
* What went wrong:
A problem occurred evaluating script.
>Cannot run program "node" (in directory "/Users/xxx/xxx/xxx/android"):error=2, No such file or directory

看一下报错的具体代码位置:
在这里插入图片描述
是在node_modules/@react-native-community/cli-platform-android/native_modules.gradle文件中。

所以错误发生的过程是:

  1. Android studio使用gradle构建React native项目,需要执行一些gradle脚本;
  2. gradle脚本中,需要使用node运行一些命令,处理js相关代码;
  3. 使用node运行命令时,发现node无法运行,所以报错,导致整个构建失败。

解决方案

错误产生的原因已经分析出来了,因为node无法运行。
但我的电脑中已经安装了node,并配置好了环境变量:
在这里插入图片描述
查看了相关资料后(google、stackoverflow),发现这是mac M1芯片才有的问题。stackoverflow上比较有效的解决方案是(本人也是使用此种方式),在终端用以下命令打开Android studio:

open -a /Applications/Android\ Studio.app

至于为什么使用这个命令打开Android studio,就能解决这个问题,暂时未深究。

附注:在jenkins中打包,node版本过低(比如10版本),我也遇到过这个问题,解决方案是升级node到14版本,并在jenkins打包设置中配置环境变量。

2024-10-30更新

gradle之前是6.7,升级到7.5.1后,不通过命令行启动,也能正常编译了。

参考资料

stackoverflow-61922174
github-react-native-community-issues-1457
stackoverflow-67337836

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值