错误:无法找到模块' ./ api' (Hyperledger作曲家)

时间:2018-04-10 02:15:49

标签: hyperledger-fabric hyperledger hyperledger-composer

从这个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

我可以知道出了什么问题吗?

3 个答案:

答案 0 :(得分:16)

在我的情况下,我在全球/usr/lib/node_modules/composer-cli中安装了composer-cli,我遇到了同样的问题。我不知道出了什么问题,但我尝试过:

  1. 将目录更改为composer-cli:

    cd /usr/lib/node_modules/composer-cli

  2. 重新安装节点报告模块,本地内部 composer-cli:

    sudo npm install node-report --unsafe-perm

  3. 请注意,我没有在-g中放置sudo npm install param,以便在composer-cli本身进行本地安装。

    node-reportmakeg++一起运行以编译某些东西(由于某种原因,在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

做了这个工作:)(重新安装节点报告没有工作)