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

9
从这个页面安装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个回答

18
在我的情况中,我在全局范围内安装了composer-cli /usr/lib/node_modules/composer-cli,并遇到了同样的问题。我不知道出了什么问题,但我试过:
  1. 更改目录为 composer-cli:
  2. cd /usr/lib/node_modules/composer-cli

  3. 重新安装node report模块,在composer-cli内本地安装
  4. sudo npm install node-report --unsafe-perm

注意,我在sudo npm install中没有放置-g参数以使安装仅限于composer-cli本身。 node-report将使用g ++运行make编译某些内容(出于某种原因,在composer-cli安装期间未运行),它只是有效的...现在我可以运行composer了。
对于您的情况,请将工作目录设置为/home/user/.nvm/versions/node/v8.11.1/lib/node_modules/composer-cli

这解决了我的问题,就像问题中所述的那样。谢谢@chrtian - Deepak Bhatta

7

答案如下:

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版本 - 如上所述,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模块 - 使用npm uninstall -g(即全局)以该id卸载它们,然后遵循上面提到的“最佳实践”,按照Composer安装文档 安装Composer模块 - 非常简单。

按照这些步骤操作-它每次都能正常工作。


使用 nvm 安装解决了我的问题。谢谢! - For the Name

2

对于我而言,完全清除

rm -rf /usr/lib/node_modules/composer-cli

执行npm install -g composer-cli即可完成任务 :) (重新安装node-report无效)


注意调试 (来自问题) at Object.<anonymous> (/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。 - Christian Lim
在调试中出现了node-report,不知道为什么重新安装没有起作用。 - BiS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接