web-dev-qa-db-fra.com

Erreur: Impossible de trouver le module './api' (compositeur Hyperledger)

Après avoir installé Hyperledger Composer cli depuis cette page , j’ai essayé d’appeler la commande composer, mais j’ai eu cette erreur:

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)

J'ai utilisé cette commande pour installer Hyperledger Composer:

npm install --unsafe-perm -g composer-cli

Puis-je savoir ce qui ne va pas?

6
AshT

Dans mon cas, j'ai installé composer-cli dans le /usr/lib/node_modules/composer-cli global et j'ai rencontré le même problème. Je ne sais pas ce qui ne va pas mais j'ai essayé:

  1. Changer de répertoire dans le composer-cli:

    cd /usr/lib/node_modules/composer-cli

  2. Réinstallation module de rapport de noeud, localement à l'intérieur le composer-cli:

    Sudo npm install node-report --unsafe-perm

Notez que je ne mets pas -g param dans Sudo npm install pour rendre l’installation locale du composeur lui-même.

Le node-report exécutera make avec g++ pour compiler quelque chose (qui, pour une raison quelconque, n'a pas été exécuté lors de l'installation de composer-cli) et cela fonctionne simplement ... Maintenant, je peux exécuter composer.

Pour votre cas, définissez le répertoire de travail sur /home/user/.nvm/versions/node/v8.11.1/lib/node_modules/composer-cli à la place.

16
Christian Lim

La réponse est 

1) N'UTILISEZ PAS root ou Sudo (comme indiqué dans un commentaire ci-dessus) pour installer les modules Composer npm - cela pose des problèmes pour npm selon les conditions préalables . Suivez plutôt les meilleures pratiques pour les installations npm: n'utilisez pas Sudo ou root pour installer Composer - cela entraînera toujours des problèmes ultérieurs. Suivez les meilleures pratiques ici https://docs.npmjs.com/getting-started/fixing-npm-permissions } _

2) Avoir une version prise en charge de npm (5.x à compter de juin 2018) selon l’installation docs

3) Installez - puis utilisez - nvm pour gérer vos versions de NODE - comme indiqué ci-dessus, le noeud 8.11.x est pris en charge. Pour NVM - voir https://github.com/creationix/nvm#installation - il l’installe. Par exemple. nvm install v8.11.1 2) nvm use 8.11.1 etc

4) Si vous avez déjà/déjà installé des modules Composer sous Sudo ou root - supprimez-les à l'aide de cet identifiant à l'aide de npm uninstall -g (c.-à-d. Global), puis suivez les «meilleures pratiques» mentionnées ci-dessus dans 1) et suivez les documents d'installation de Composer faire l’installation des modules Composer - très très simple.

En suivant ces étapes, cela fonctionne à chaque fois.

6
Paul O'Mahony

Pour moi, essuyer complètement 

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

et exécuter npm install -g composer-cli 

a fait le travail :) (la réinstallation de node-report n'a pas fonctionné)

1
BiS