Mac本地安装Hyperledger后运行composer-playground提示命令不存在解决方法
我之前在Mac上部署Hyperledger Composer的时候也碰到过这个一模一样的问题,大概率是npm全局包的路径配置或者安装环节出了问题,给你几个排查和解决的步骤:
1. 先确认Node.js和npm的安装状态
Hyperledger Composer对Node.js和npm的版本有特定要求(通常是Node 8.x系列,npm 5.x系列,具体可以对照你看的《Hyperledger - Installing the development environment》指南)。先在终端里跑这两个命令验证:
node -v npm -v
如果版本不符合,建议用nvm(Node Version Manager)来管理多版本Node,避免系统级权限问题和版本冲突。
2. 确保composer-playground是全局安装的
如果只是局部安装在某个项目目录下,终端肯定找不到这个命令。执行全局安装命令:
npm install -g composer-playground
如果碰到权限报错(比如EACCES),别直接用sudo(容易搞乱系统权限),优先用nvm管理Node版本,或者调整npm的全局安装目录权限。
3. 检查npm全局bin目录是否在系统PATH里
Mac上npm全局安装的命令通常放在/usr/local/bin或者nvm对应的版本目录(比如~/.nvm/versions/node/<你的Node版本>/bin)。先查看当前PATH里有没有这个目录:
echo $PATH
如果没看到对应的路径,需要把它添加到你的shell配置文件里:
- 如果你用的是bash,编辑
~/.bash_profile,添加一行:
然后执行export PATH="$PATH:/usr/local/bin"source ~/.bash_profile让配置生效。 - 如果你用的是zsh(现在Mac默认是zsh),编辑
~/.zshrc,同样添加上面的PATH配置,然后执行source ~/.zshrc。
4. 切换到正确的Node版本(如果用nvm的话)
如果你用nvm安装了多个Node版本,可能composer-playground是安装在某个特定版本下的,而当前终端用的是另一个版本。先查看已安装的Node版本:
nvm list
然后切换到安装composer-playground的那个版本:
nvm use <你的Node版本号>
比如nvm use 8.17.0。
5. 重新安装composer-playground(排除安装损坏)
有时候安装过程中可能因为网络问题导致包损坏,先卸载全局的composer-playground:
npm uninstall -g composer-playground
然后重新安装,要是国内网络慢的话可以换国内npm源:
npm install -g composer-playground --registry=https://registry.npmmirror.com
完成这些步骤后,再试试composer-playground命令,应该就能正常启动Playground了。
内容的提问来源于stack exchange,提问作者Suren Konathala

