Hyperledger fabric 错误:找不到模块'/api&x27;(超级分类账编写器)

Hyperledger fabric 错误:找不到模块'/api&x27;(超级分类账编写器),hyperledger-fabric,hyperledger,hyperledger-composer,Hyperledger Fabric,Hyperledger,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:1

从此安装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)

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

在我的例子中,我在global
/usr/lib/node\u modules/composer cli中安装了composer cli,遇到了相同的问题。我不知道怎么了,但我试过:

  • 将目录更改为composer cli:

    cd/usr/lib/node\u模块/composer cli

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

    sudo npm安装节点报告--不安全的perm

  • 请注意,我没有将
    -g
    参数放入
    sudo npm install
    中,以使安装在composer cli本身的本地

    节点报告
    将使用
    g++
    运行
    make
    ,以编译某些内容(由于某些原因,在composer cli安装过程中没有运行这些内容),并且它可以正常工作。。。现在我可以运行composer了


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

    对于我,完全擦除

    rm -rf /usr/lib/node_modules/composer-cli
    
    执行
    npm安装-g composer cli

    是否执行了作业:)(重新安装节点报告不起作用)

    答案是

    1) 不要求助于使用root或sudo安装Composer npm模块(如上面的评论所建议的那样)-这会导致npm出现问题。相反,请遵循npm安装的最佳实践:不要使用sudo或root来安装Composer-它将始终导致后续问题。在这里遵循最佳实践

    2) 每个安装都有一个受支持的npm版本(自2018年6月起为5.x)

    3) 安装-然后使用-
    nvm
    管理您的节点版本-如上所述,支持节点8.11.x。对于NVM-请参阅-它将安装它。例如,
    nvm安装v8.11.1
    2)
    nvm使用8.11.1

    4) 如果您已经/以前使用sudo或root安装过Composer模块,请使用
    npm uninstall-g
    (ie global)使用该id将其删除,然后遵循上文1)中提到的“最佳实践”,并非常直接地按照进行Composer模块安装


    遵循这些步骤-每次都有效。

    注意调试(从问题中)
    at对象。(/home/user/.nvm/versions/node/v8.11.1/lib/node_modules/composer cli/node_modules/node report/index.js:3:13)
    这就是为什么我的答案也是关于
    节点报告的。也许在您的情况下,它不是node-report。它是调试中的node-report,不知道为什么重新安装不起作用。使用nvm安装为我解决了这个问题。非常感谢。这解决了我的问题,就像问题中所说的那样。谢谢你@chrtian
    
    rm -rf /usr/lib/node_modules/composer-cli