Karma-Befehl nicht gefunden, wenn Karma bereits installiert ist


69

Ich habe node.js verwendet, um Karma zu installieren. Mein erster Versuch schlug fehl, als der folgende Befehl auf dem Terminal ausgeführt wurde:

npm install -g karma

Das schlug fehl und ich entschied mich für:

sudo npm install -g karma

Nach Eingabe meines Passworts schien es korrekt zu installieren. Ich füge einen Teil der Ausgabe der Installation ein. Vielleicht bedeutet dies jemandem etwas und ist für meine Frage relevant. Nach all den npm http-Nachrichten sehe ich Folgendes:

> ws@0.4.27 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
karma@0.8.6 /usr/local/share/npm/lib/node_modules/karma
├── pause@0.0.1
├── dateformat@1.0.2-1.2.3
├── xmlbuilder@0.4.2
├── colors@0.6.0-1
├── chokidar@0.6.2
├── growly@1.1.1
├── mime@1.2.9
├── q@0.9.6
├── rimraf@2.1.4 (graceful-fs@1.2.3)
├── coffee-script@1.6.3
├── minimatch@0.2.12 (sigmund@1.0.0, lru-cache@2.3.0)
├── optimist@0.3.5 (wordwrap@0.0.2)
├── glob@3.1.21 (inherits@1.0.0, graceful-fs@1.2.3)
├── LiveScript@1.0.1 (prelude-ls@1.0.1)
├── log4js@0.6.6 (dequeue@1.0.3, semver@1.1.4, async@0.1.15, readable-stream@1.0.2)
├── lodash@1.1.1
├── http-proxy@0.10.3 (pkginfo@0.2.3, utile@0.1.7)
├── istanbul@0.1.22 (abbrev@1.0.4, which@1.0.5, fileset@0.1.5, nopt@2.0.0, wordwrap@0.0.2, async@0.1.22, mkdirp@0.3.5, esprima@0.9.9, escodegen@0.0.24, handlebars@1.0.12)
└── socket.io@0.9.16 (base64id@0.1.0, policyfile@0.0.4, redis@0.7.3, socket.io-client@0.9.16)

Wenn ich dann versuche, den folgenden Befehl auszuführen, um mit diesem Befehl eine Karma-Konfigurationsdatei zu erstellen:

karma init karma.config.js

Dies ist die Nachricht, die zurückgegeben wird:

-bash: karma: command not found

Ich habe den gleichen Befehl mit sudo zuvor versucht, aber ich erhalte das gleiche Ergebnis.

Hat jemand eine Idee, was los ist? Jede Hilfe wird geschätzt.

*Aktualisieren! Ich habe beschlossen, eine Datei mit dem Namen: builderror.log zu überprüfen, die sich in: /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws befindet

Das zeigt es:

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

1
es ist anscheinend nicht in deinem Weg, bestätige mit which karma. Ich habe erlebt, wie npm Dinge an einem nicht standardmäßig im Pfad befindlichen Speicherort installiert, denke ich bei Arch. Ich erinnere mich nicht, wohin es ging, obwohl es mir leid tut :( ps Sie können tun cd /; find|grep karma, um alle Dateinamen auf dem System mit Karma in Dateinamen oder Pfad zu erhalten
Plato

Ich habe den Befehl ausgeführt und das habe ich bekommen. Ich usage: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression] find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]
bin

OK, tut mir leid, Ihr findProgramm verhält sich anders als meins. Auf jeden Fall müssen Sie herausfinden, wo npm Material installiert hat, und sicherstellen, dass der Ordner zu Ihrem Pfad für Ihre Terminalsitzungen hinzugefügt wird. FWIW auf meiner Linux Mint-Installation, npm -glegt Sachen in/usr/local/bin
Plato

Ich habe das gleiche Problem. Keiner der Vorschläge / Antworten half.
Doug

114
Die Befehlszeilenschnittstelle befindet sich in einem separaten Paket. Um diese zu installieren, verwenden Sie: npm install -g karma-cli
mayankcpdixit

Antworten:


249

@mayankcpdixit gab die Antwort dort oben in einer Antwort auf die ursprüngliche Frage des OP, aber ich werde sie hier noch einmal einfügen, falls jemand sie verpasst.

Sie müssen nicht alles deinstallieren, und wenn ich für jedes npm-Paket, das ich zu installieren versuche, manuell einen neuen Pfadlink hinzufügen müsste, würde ich mich wahrscheinlich selbst erschießen.

npm install -g karma-cli

Boom. Jetzt haben Sie Karma-Befehlszeilen installiert. Genau wie Grunzen.


Bearbeiten: Bitte vergessen Sie nicht, auch @mayankcpdixit zu bewerten , er hat den ursprünglichen Beitrag direkt kommentiert, aber die Frage nicht "beantwortet".


9
Denken Sie daran, -gdass Sudo-Privilegien erforderlich sind, so sollte es sein sudo npm install -g karma-cli;)
Sol4me

37

~/.bash_profileÄndern Sie PATHin Ihrer (oder einer ähnlichen) Änderung Ihre , um von npm installierte Binärdateien aufzunehmen:

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

Ich hatte genau das gleiche Problem und fand diese Lösung weniger zeitaufwändig und wirkungsvoll als die vollständige Neuinstallation des Knotens.

BEARBEITEN dies hat auch für andere in funktioniertbash_profile

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

9
Ich musste verwenden: export PATH="$PATH:/usr/local/lib/node_modules/karma/bin" in ~/.bash_profile.
Jason Shah

1
Ich kann mich nicht entscheiden, ob ich sicherstellen soll, dass Karma auf meinem Weg ist, oder ob ich Node komplett neu installieren soll ... +1
Matt Jensen

Konnte das nicht zum Laufen bringen. Dies ist mit einer globalen Installation oder Karma, richtig?
Bewilligung

@grant Entschuldigung, Sie konnten es nicht zum Laufen bringen (und für diese späte Antwort). Ja, es war mit einer globalen Installation von Karma.
Marty Cortez

1
Wenn Sie oh my zsh verwenden, nehmen Sie die Änderungen in ~ / .zshrc
DamongoCoder

14

Es wird empfohlen, Karma mit seiner Befehlszeilenschnittstelle ( karma-cli ) zu installieren, die sich um das Abrufen des entsprechenden Karmas kümmert. Sie können auch eine andere lokale Version installieren, die für jedes Projekt, an dem Sie arbeiten, spezifisch ist, und karma-cli wählt die entsprechende aus.

Von der Karma- Installationsseite :

Die Eingabe von ./node_modules/karma/bin/karma start saugt, sodass es möglicherweise nützlich ist, karma-cli global zu installieren:

npm install -g karma-cli

Überprüfen Sie nun, ob Karma installiert wurde, indem Sie Folgendes eingeben:

karma start

Sie können auch überprüfen, ob Karma installiert wurde, indem Sie in dieses Verzeichnis gehen:

cd /usr/local/lib/node_modules/karma

Viel Glück!


2

Node.js muss nicht vollständig deinstalliert werden

Gerade

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

Dann
installieren node.js

Dann
installiere Karma neu

Das hat bei mir funktioniert.


2

Ich musste export PATH="$PATH":/usr/local/lib/node_modules/npm/node_modules/karma/binnach der Installation von Karma mit hinzufügen sudo npm install karma.

hoffe das hilft.


1

Gehen Sie einfach zu test.sh:

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

Ersetzen mit: /usr/local/bin/karma start $BASE_DIR/../config/karma.conf.js $*

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


1

Ich stand auch vor dem gleichen Problem. Es sieht so aus, als ob Karma für die Befehlszeile ein separates Paket ist, das von installiert werden kann

npm install -g karma-cli


1
Für jedermanns Info: Ich musste meinem package.json auch karma-cli hinzufügen, damit es auf Circle CI ausgeführt werden konnte.
Rimian

0

Beim Upgrade von Karma 0.10 auf 0.12 wird die Verknüpfung zur ausführbaren Karma-Datei entfernt.

Sie können es mit zurückbekommen

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

-21

Versuchen Sie, node.js neu zu installieren. Es gibt viele Möglichkeiten, es zu installieren, aber ich empfehle das Herunterladen von nodejs.org

Wenn das nicht funktioniert, können Sie versuchen, Karma neu zu installieren.


Ich hatte Node ursprünglich über Homebrew installiert. Ich habe die Verknüpfung von node aufgehoben und dann node.js von der Website heruntergeladen. Installierte die pkg-Datei und alles scheint jetzt gut zu funktionieren. Vielen Dank!
iChido
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.