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?
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é:
Changer de répertoire dans le composer-cli:
cd /usr/lib/node_modules/composer-cli
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.
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.
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é)