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
iChido
quelle
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".

Kirkland
quelle
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" 
Marty Cortez
quelle
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!

Lior Elrom
quelle
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.

vusan
quelle
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.

Ralph Delzepich
quelle
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 $*

Tiago Ferreira
quelle
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

skjoshi
quelle
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
OnnoH
quelle
-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.

dob
quelle
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