技术问询:能否在同一台机器(含Mac)部署多版本Hyperledger Composer?
在Mac上同时运行多个Hyperledger Composer版本的可行方案
当然可以!我之前帮不少开发者搞定过这个需求——既要尝鲜新版本的特性,又不想搞崩旧项目的稳定运行环境,下面是几个经过验证的实操方案:
1. 项目本地依赖隔离(最推荐)
给每个项目单独安装对应版本的Composer工具,实现项目间的完全隔离,不会互相干扰:
- 进入你的0.16.x旧项目根目录,执行本地安装命令:
npm install --save-dev composer-cli@0.16.x composer-rest-server@0.16.x - 后续运行该项目的Composer命令时,要调用项目本地的二进制文件,比如:
./node_modules/.bin/composer network start ./node_modules/.bin/composer-rest-server - 对于新的0.17.x项目,在其根目录执行对应版本的安装:
运行时同样使用npm install --save-dev composer-cli@0.17.x composer-rest-server@0.17.x./node_modules/.bin/路径下的命令即可。
2. 用nvm隔离全局环境
如果习惯使用全局安装的工具,可以借助Node版本管理器(nvm),为不同Composer版本搭配适配的Node环境(因为Composer不同版本对Node有明确的版本要求):
- 先在Mac上安装nvm(用brew或官方脚本都可以快速完成)
- 为0.16.x项目创建专属Node环境:
nvm install 8.x # 0.16.x通常适配Node 8系列 nvm alias composer-0.16 8.x - 切换到该环境后全局安装0.16.x版本:
nvm use composer-0.16 npm install -g composer-cli@0.16.x composer-rest-server@0.16.x - 同理为0.17.x创建另一个环境:
nvm install 10.x # 0.17.x支持Node 8/10系列 nvm alias composer-0.17 10.x npm install -g composer-cli@0.17.x composer-rest-server@0.17.x - 后续需要切换版本时,只需执行
nvm use composer-0.16或nvm use composer-0.17即可快速切换全局环境。
3. 关键注意事项
- 务必保证每个项目的
package.json里明确指定了对应版本的Composer依赖,避免意外升级导致兼容问题。 - 运行旧项目前,建议先删除项目的
node_modules和package-lock.json,再重新执行npm install,确保依赖完全匹配目标版本。 - 如果使用Docker部署业务网络,要同步保证Docker镜像版本与Composer版本一致,比如0.16.x对应
hyperledger/composer-*:0.16.x系列镜像。
内容的提问来源于stack exchange,提问作者kofman
相关产品推荐
相关产品推荐

