从这个page安装Hyperledger Composer cli之后,我尝试调用composer命令但是出现了这个错误:
module.js:549
throw err;
^
Error: Cannot find module './api'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/user/.nvm/versions/node/v8.11.1/lib/node_modules/composer-cli/node_modules/node-report/index.js:3:13)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
我使用此命令安装Hyperledger Composer:
npm install --unsafe-perm -g composer-cli
我可以知道出了什么问题吗?
答案 0 :(得分:16)
在我的情况下,我在全球/usr/lib/node_modules/composer-cli
中安装了composer-cli,我遇到了同样的问题。我不知道出了什么问题,但我尝试过:
将目录更改为composer-cli:
cd /usr/lib/node_modules/composer-cli
重新安装节点报告模块,本地内部 composer-cli:
sudo npm install node-report --unsafe-perm
请注意,我没有在-g
中放置sudo npm install
param,以便在composer-cli本身进行本地安装。
node-report
将make
与g++
一起运行以编译某些东西(由于某种原因,在composer-cli安装过程中没有运行)并且它正常工作......现在我可以运行了作曲家。
对于您的案例,请将工作目录设置为/home/user/.nvm/versions/node/v8.11.1/lib/node_modules/composer-cli
。
答案 1 :(得分:6)
答案是
1)不要使用root或sudo (如上面评论中所建议的)安装Composer npm模块 - 这会导致prerequisites的npm问题。相反,请遵循npm安装的最佳实践:不要使用sudo或root来安装Composer - 它总是会导致问题进一步发生。请遵循此处的最佳做法https://docs.npmjs.com/getting-started/fixing-npm-permissions
2)根据安装docs
,获得支持的npm版本(截至2018年6月的5.x) 3)安装 - 然后使用 - nvm
来管理您的NODE版本 - 如上所述,支持节点8.11.x.对于NVM - 请参阅https://github.com/creationix/nvm#installation - 它会安装它。例如。 nvm install v8.11.1
2)nvm use 8.11.1
等
4)如果您已经/之前使用sudo或root安装了Composer模块 - 使用{id}使用npm uninstall -g
(即全局)删除它们,然后按照上面1)中提到的“最佳实践”进行操作,并按照Composer install docs安装Composer模块 - 非常非常直接。
遵循这些步骤 - 每次都有效。
答案 2 :(得分:1)
对我来说,完全擦拭
npm install -g composer-cli
并执行
requireInteraction
做了这个工作:)(重新安装节点报告没有工作)