web-dev-qa-db-fra.com

Commande karma introuvable lorsque le karma est déjà installé

J'ai utilisé node.js pour installer le karma. Mon premier essai a échoué lors de l'exécution de la commande suivante sur le terminal:

npm install -g karma

Cela a échoué alors j'ai décidé d'utiliser:

Sudo npm install -g karma

Après avoir entré mon mot de passe, il semble s'installer correctement. Je colle une partie de la sortie de l'installation, cela signifiera peut-être quelque chose pour quelqu'un et ce sera pertinent pour ma question. Après tous les messages http npm, voici ce que je vois:

> [email protected] install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)

  CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
  SOLINK_MODULE(target) Release/bufferutil.node
  SOLINK_MODULE(target) Release/bufferutil.node: Finished
  CXX(target) Release/obj.target/validation/src/validation.o
  SOLINK_MODULE(target) Release/validation.node
  SOLINK_MODULE(target) Release/validation.node: Finished
/usr/local/share/npm/bin/karma -> /usr/local/share/npm/lib/node_modules/karma/bin/karma
[email protected] /usr/local/share/npm/lib/node_modules/karma
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

Ensuite, lorsque j'essaie d'exécuter la commande suivante pour créer un fichier de configuration karma avec cette commande:

karma init karma.config.js

c'est le message qui est renvoyé:

-bash: karma: command not found

J'ai essayé la même commande avec Sudo avant mais j'obtiens le même résultat.

Quelqu'un a-t-il une idée de ce qui se passe? Toute aide est appréciée.

*Mise à jour! J'ai décidé de vérifier un fichier nommé: builderror.log situé dans: /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws

C'est ce que ça montre:

gyp WARN EACCES user "root" does not have permission to access the dev dir "/Users/eperez/.node-gyp/0.10.5"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws/.node-gyp"
gyp http GET http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz
gyp http 200 http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz
69
iChido

@ mayankcpdixit a donné la réponse là-haut dans une réponse à la question originale de l'OP, mais je vais la remettre ici au cas où quelqu'un la manquerait.

Vous n'avez pas besoin de tout désinstaller, et si je devais ajouter manuellement un nouveau lien de chemin pour chaque paquet npm que j'essaie d'installer, je me tirerais probablement dessus.

npm install -g karma-cli

Boom. Vous avez maintenant installé les lignes de commande de karma. Tout comme Grunt.


Edit: N'oubliez pas de voter @ mayankcpdixit également, il a commenté directement le message d'origine, mais n'a pas réellement "répondu" à la question.

248
Kirkland

Dans votre ~/.bash_profile (ou similaire) modifiez votre PATH pour inclure les binaires installés par npm:

export PATH="$PATH:/usr/local/share/npm/bin"

J'ai eu ce même problème et j'ai trouvé cette solution moins longue et moins impactante que la réinstallation complète du nœud.

MODIFIER cela a également fonctionné pour d'autres dans bash_profile

export PATH="$PATH:/usr/local/lib/node_modules/karma/bin" 
37
Marty Cortez

Il est recommandé d'installer le karma avec son interface de ligne de commande ( karma-cli ) qui se chargera de récupérer le karma approprié. Vous pouvez également installer une version locale différente spécifique à chaque projet sur lequel vous travaillez et karma-cli choisira la version appropriée.

Depuis la page karma installation :

Taper ./Node_modules/karma/bin/karma start craint donc vous pourriez trouver utile d'installer karma-cli globalement:

npm install -g karma-cli

Maintenant, vérifiez que le karma a été installé en tapant:

karma start

Vous pouvez également vérifier que karma a été installé en allant dans ce répertoire:

cd /usr/local/lib/node_modules/karma

Bonne chance!

14
Lior Elrom

Je devais ajouter export PATH="$PATH":/usr/local/lib/node_modules/npm/node_modules/karma/bin après avoir installé le karma avec Sudo npm install karma.

j'espère que cela t'aides.

2
Ralph Delzepich

Pas besoin de désinstaller complètement node.js

Juste

Sudo rm -rf /usr/local/lib/node_modules/npm/

Ensuite
installez node.js

Ensuite
réinstaller le karma

Cela a fonctionné pour moi.

2
vusan

J'étais également confronté au même problème. Il semble que le karma pour la ligne de commande soit un package distinct qui peut être installé par

npm install -g karma-cli

1
skjoshi

Allez simplement sur test.sh:

Trouver: $BASE_DIR/../node_modules/karma/bin/karma start $BASE_DIR/../config/karma.conf.js $*

Remplacer par: /usr/local/bin/karma start $BASE_DIR/../config/karma.conf.js $*

Ou: karma start $BASE_DIR/../config/karma.conf.js $*

1
Tiago Ferreira

Lors de la mise à niveau de Karma 0.10 vers 0.12, le lien vers l'exécutable karma est supprimé.

Vous pouvez le récupérer avec

cd node_modules/.bin
ln -s ../karma/bin/karma karma
0
OnnoH