错误:找不到模块'./api'(Hyperledger composer)

Ash*_*shT 7 hyperledger hyperledger-fabric hyperledger-composer

从此页面安装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)
Run Code Online (Sandbox Code Playgroud)

我使用此命令安装Hyperledger Composer:

npm install --unsafe-perm -g composer-cli
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*Lim 16

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

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

    cd /usr/lib/node_modules/composer-cli

  2. 在composer-cli中本地重新安装节点报告模块:

    sudo npm install node-report --unsafe-perm

注意我没有把-gparam放在sudo npm installcomposer-cli本身的本地安装中.

node-report将运行makeg++编译东西(由于某种原因,没有作曲家-CLI安装过程中运行),它就可以工作......现在我可以运行作曲家.

对于您的情况,请设置工作目录/home/user/.nvm/versions/node/v8.11.1/lib/node_modules/composer-cli.


Pau*_*ony 6

答案是

1)不要使用root或sudo(如上面的注释中所建议的)来安装Composer npm模块 - 这会导致每个先决条件的 npm问题.相反,请遵循npm安装的最佳实践:不要使用sudo或root来安装Composer - 它总是会导致问题进一步发生.按照这里的最佳做法https://docs.npmjs.com/getting-started/fixing-npm-permissions

2)根据安装文档,获得支持的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安装文档来执行Composer模块安装 - 非常非常直接.

按照这些步骤 - 它每次都有效.