Mac环境下Appium Doctor执行命令遇Unexpected token语法错误求助
解决appium-doctor执行时的SyntaxError: Unexpected token {问题
嗨,我之前也踩过这个坑,一眼就看出问题所在了!
问题原因
你报错里的catch {是ES2019才引入的无参数catch语句(也就是不需要写(err)的简化catch语法),而你当前使用的Node.js版本太低,完全不支持这个新特性。从报错里的vm.js和module.js版本信息来看,你的Node.js应该是10.x及以下的旧版本,而新版appium-doctor已经用上了高版本Node的语法,所以运行时直接抛出了语法错误。
解决办法
下面给你两种可行的方案,优先推荐第一种:
方案一:升级Node.js版本(推荐)
低版本Node不仅会遇到这个问题,还会错过大量安全修复和新特性,升级才是长久之计:
- 先检查当前Node版本,确认是不是过低:
node -v - 用nvm(Node版本管理器)来安装并切换到稳定版Node:
- 如果你的Mac装了Homebrew,直接安装nvm:
安装完成后,按照终端提示把nvm的初始化代码添加到你的shell配置文件(比如brew install nvm~/.zshrc或~/.bashrc)里,然后重启终端或者执行source ~/.zshrc(对应你的配置文件)生效。 - 安装长期支持的稳定版Node,并切换过去:
nvm install --lts nvm use --lts
- 如果你的Mac装了Homebrew,直接安装nvm:
- 最后重新运行appium-doctor验证:
这时候应该就能正常显示帮助内容了。appium-doctor -h
方案二:降级appium-doctor到兼容低版本Node的旧版本
如果暂时不想升级Node,可以试试安装旧版appium-doctor:
npm uninstall -g appium-doctor npm install -g appium-doctor@3.1.2
不过这个方法只是临时 workaround,旧版本可能存在已知bug或缺少新功能,还是建议优先升级Node。
内容的提问来源于stack exchange,提问作者vaibhav
相关产品推荐
相关产品推荐

