M1 Pro Mac使用fish shell启动Expo项目提示ps、grep命令未找到
问题根因
- 第一是Node版本不兼容:你当前使用的Node v17.0.1超出了Expo CLI官方支持的版本范围,官方最高只适配到17.0.0以下的版本,版本不匹配会引发一系列未知运行错误。
- 第二是PATH环境变量异常:报错日志里显示的
/bin/sh: ps: command not found这类提示,本质是Expo调用系统默认sh执行命令时,读取到的PATH环境变量缺失了MacOS系统命令的默认存储路径,导致找不到系统自带的基础工具。你用的fish shell如果自定义过PATH配置,没有把系统默认路径加入全局生效的配置项,就会出现非交互式shell环境找不到系统命令的问题。
ps/grep命令安装说明
ps、grep、open都是MacOS系统预装的基础命令,不需要额外安装任何软件包获取,找不到命令的核心原因是PATH配置错误。
修复步骤
- 先降级Node版本到Expo兼容的范围,推荐安装16.x的LTS版本,可通过nvm、fnm这类Node版本管理工具快速切换,避免后续版本冲突。
- 修复fish shell的PATH配置:打开fish配置文件
~/.config/fish/config.fish,加入以下内容将系统默认路径添加到PATH最前列:
修改完成后执行set -gx PATH /usr/local/bin /usr/bin /bin /usr/sbin /sbin $PATHsource ~/.config/fish/config.fish让配置生效。 - 配置生效后重新执行
expo start即可正常运行,如果仍有报错,可临时切换到bash/zsh执行启动命令,验证是否为fish配置导致的问题。
内容的提问来源于stack exchange,提问作者Willy
相关产品推荐
相关产品推荐

