Gulp-Befehl nach Installation nicht gefunden

97

Ich habe gulp (global) installiert und es sieht so aus, als hätte es funktioniert, weil es diesen Code ausgeführt hat:

├── tildify@0.2.0
├── interpret@0.3.5
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── minimist@0.2.0
├── semver@2.3.2
├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5)
├── chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── gulp-util@2.2.20 (lodash._reinterpolate@2.4.1, dateformat@1.0.8-1.2.3, vinyl@0.2.3, through2@0.5.1, multipipe@0.1.1, lodash.template@2.4.1)
├── liftoff@0.12.0 (extend@1.2.1, minimist@0.1.0, resolve@0.7.4, findup-sync@0.1.3)
└── vinyl-fs@0.3.5 (graceful-fs@3.0.2, lodash@2.4.1, mkdirp@0.5.0, strip-bom@0.3.1, vinyl@0.2.3, through2@0.5.1, glob-watcher@0.0.6, glob-stream@3.1.14)

Aber wenn ich tippe gulp, heißt es-bash: gulp: command not found

Irgendeine Idee, was los ist?

iluvpinkerton
quelle
4
Um dies zu lösen, habe ich es getan sudo install gulp -g. das hat funktioniert
Mr_Green
9
Mr_Green meinte: sudo npm install gulp -g
jasonleonhard

Antworten:

173

Es stellte sich heraus, dass npm im falschen Verzeichnis installiert wurde, sodass ich das "npm config prefix" ändern musste, indem ich diesen Code ausführte:

npm config set prefix /usr/local

Dann habe ich gulp global neu installiert (mit dem Parameter -g) und es hat richtig funktioniert.

In diesem Artikel habe ich die Lösung gefunden: http://webbb.be/blog/command-not-found-node-npm

iluvpinkerton
quelle
2
Vielen Dank! Mein Problem wurde auch gelöst :)
Rebellion
2
Tolle. Danke dir.
Andrew
2
Auch die Lösung hat mir geholfen
Sergey Andreev
2
Danke, das hat funktioniert. So seltsam. Ich habe es auf MacBook 1 installiert, es funktioniert, MacBook 2, funktioniert nicht, also muss ich das tun. Verrückt.
Axelvnk
2
Ich frage mich, warum StackOverflow dies nicht als erste Antwort anzeigt! Es ist eindeutig das richtige.
Anand Sainath
58

Ich bin mir nicht sicher, warum die Frage abgelehnt wurde, aber ich hatte das gleiche Problem und nach dem Blog-Beitrag wurde empfohlen, das Problem zu lösen. Eine Sache, die ich hinzufügen sollte, ist, dass in meinem Fall, sobald ich lief:

npm config set prefix /usr/local

Ich bestätigte das npm root -gzeigte auf /usr/local/lib/node_modules/npm, aber zu installieren , um gulpin /usr/local/lib/node_modules, ich hatte zu verwenden sudo:

sudo npm install gulp -g

thehme
quelle
Ich habe nach dieser Lösung gesucht! DANKE! Befehl: npm config set prefix /usr/localGelöstes Problem!
North.inhale
21

Wenn Sie verwenden tcsh(dies ist meine Standard-Shell unter Mac OS X), müssen Sie wahrscheinlich rehasherst nach Abschluss der Installation Folgendes in die Shell eingeben:

npm install -g gulp

gefolgt von:

rehash

Wenn Sie dies zum ersten Mal installieren gulp, erkennt Ihre Shell möglicherweise nicht, dass eine neue ausführbare Datei installiert ist. Sie müssen also entweder eine neue Shell starten oder rehashdie aktuelle Shell eingeben.

(Dies ist im Grunde eine einmalige Sache für jeden Befehl, den Sie global installieren.)

Steve Goldberg
quelle
17

Mir ist klar, dass dies ein alter Thread ist, aber für Future-Me und die Nachwelt dachte ich, ich sollte meine zwei Cent um die Diskussion "Running Npm as Sudo" hinzufügen. Haftungsausschluss: Ich benutze kein Windows. Diese Schritte wurden nur auf virtuellen und physischen Nicht-Windows-Computern bewiesen.

Sie können die Verwendung von sudo vermeiden, indem Sie die Berechtigung in das Standardverzeichnis von npm ändern.


Gewusst wie: Ändern von Berechtigungen, um npm ohne auszuführen sudo

Schritt 1: Finden Sie heraus, wo sich das Standardverzeichnis von npm befindet.

  • Öffnen Sie dazu Ihr Terminal und führen Sie Folgendes aus:
    npm config get prefix

Schritt 2: Fahren Sie fort, basierend auf der Ausgabe dieses Befehls:

  • Szenario 1: Das Standardverzeichnis von npm ist /usr/local
    Für die meisten Benutzer zeigt Ihre Ausgabe, dass das Standardverzeichnis von npm / usr / local ist. In diesem Fall können Sie mit Schritt 4 fortfahren, um die Berechtigungen für das Verzeichnis zu aktualisieren.
  • Szenario 2: Das Standardverzeichnis von npm ist /usroder /Users/YOURUSERNAME/node_modulesoder /Something/Else/FishyLooking
    Wenn Sie feststellen, dass das Standardverzeichnis von npm nicht / usr / local ist, sondern etwas, das Sie nicht erklären können oder das nicht gut aussieht, sollten Sie mit Schritt 3 fortfahren, um das Standardverzeichnis für npm zu ändern. oder Sie riskieren, Ihre Berechtigungen in einem viel größeren Maßstab durcheinander zu bringen.

Schritt 3: Ändern Sie das Standardverzeichnis von npm:

  • Es gibt verschiedene Möglichkeiten, dies zu tun, einschließlich des Erstellens eines Verzeichnisses speziell für globale Installationen und des anschließenden Hinzufügens dieses Verzeichnisses zu Ihrem $ PATH. Da sich jedoch / usr / local wahrscheinlich bereits in Ihrem Pfad befindet, ist es meiner Meinung nach einfacher, nur die npm zu ändern Standardverzeichnis dazu. Wie so: npm config set prefix /usr/local
    • Weitere Informationen zu den anderen von mir erwähnten Ansätzen finden Sie in den npm-Dokumenten hier .

Schritt 4: Aktualisieren Sie die Berechtigungen für das Standardverzeichnis von npm:

  • Sobald Sie überprüft haben, dass sich das Standardverzeichnis von npm an einem vernünftigen Speicherort befindet, können Sie die Berechtigungen dafür mit dem folgenden Befehl aktualisieren:
    sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

Jetzt solltest du npm <whatever>ohne laufen können sudo. Hinweis: Möglicherweise müssen Sie Ihr Terminal neu starten, damit diese Änderungen wirksam werden.

sgray
quelle
7

Ich hatte ein ähnliches Problem. Ich habe die folgenden Schritte ausgeführt und es hat funktioniert. Gehen Sie zum Mac-Terminal und führen Sie die Befehle aus.

1.npm config set prefix / usr / local

2.sudo chown -R $ (whoami) $ (npm config erhält Präfix) / {lib / node_modules, bin, share}

Diese beiden Befehle setzen den npm-Pfad richtig und Sie müssen sudo nicht mehr in npm verwenden. Als nächstes deinstallieren Sie den Schluck

  1. npm deinstallieren gulp

  2. Installiere gulp erneut ohne sudo, npm installiere gulp -g

Das sollte funktionieren!!

Atul Kumar
quelle
4

Ich hatte das Problem, dass nach der Installation "Befehl nicht gefunden" angezeigt wurde, aber ich wurde in / usr / local installiert, wie in der obigen Lösung beschrieben.

Mein Problem schien dadurch verursacht zu werden, dass ich die Installation mit sudo ausführte. Ich habe folgendes getan.

  1. Schluck mit sudo wieder entfernen
  2. Ändern des Besitzers von / usr / local / lib / node_modules in meinen Benutzer
  3. Schluck wieder ohne sudo installieren. "npm install gulp -g"
Zack Huston
quelle
1
Es erscheint vernünftiger, dass ich mit sudo nichts lokal installieren muss und warum sollte ich jemals sudo verwenden müssen - für mich, wenn ich sudo benutze, brechen die Dinge, wenn Sie die Befehlszeile nicht wie sudo ausführen - wie in Tag für Tag Entwickler unter Benutzer. Ich neige dazu zu denken, dass Ihr Weg viel korrekter ist - Sudo ist nicht immer die beste Antwort, obwohl es für den Moment zu reparieren scheint.
landete
3

Sie müssen dies tun npm install --global gulp. Es funktioniert bei mir und ich hatte auch dieses Problem. Dies liegt daran, dass Sie dieses Paket nicht global installiert haben.

Sergey Andreev
quelle
2

Wenn Sie einen Mac ausführen, verwenden Sie das Root-Privileg

sudo npm install gulp-cli --global

Um zu überprüfen, ob es installiert ist, führen Sie es aus

gulp -v

CLI-Version: 2.2.0 (Die Ausgabe)

Lokale Version: Unbekannt

Abinet KenoreGetachew
quelle
1

Ich habe dies unter Win10 mit einer Kombination der Antworten von oben und anderswo zum Laufen gebracht. Poste hier für andere und zukünftige mich.

Ich habe die Anweisungen von hier aus befolgt: https://gulpjs.com/docs/en/getting-started/quick-start, aber im letzten Schritt nach der Eingabe von gulp --version wurde die Meldung -bash: gulp: Befehl nicht gefunden

Um dies zu beheben:

  1. Ich habe meiner Umgebungsvariablen Path% AppData% \ npm hinzugefügt
  2. Alle Gitbash (cmd, Powershell usw.) geschlossen und Gitbash neu gestartet.
  3. Dann funktionierte die Schluckversion

Im Folgenden finden Sie auch Gründe, warum Sie gulp nicht global installieren und entfernen sollten (nicht sicher, ob dies jedoch ratsam ist):

Wofür steht gulp- "cli"?

Wie deinstalliere ich Gulp CLI von NPM weltweit?

Tony Lisanti
quelle
0

In meinem Fall das Hinzufügen von sudo vor npm install gelöst gulp Befehl nicht gefunden Problem

sudo npm install

Balram Singh
quelle
0

Wenn Sie Ihr Präfix intakt lassen möchten, exportieren Sie einfach das bin-Verzeichnis in Ihre PATH-Variable:
export PATH=$HOME/your-path/bin:$PATH
Ich habe diese Zeile zu meinem $ HOME / .profile hinzugefügt und sie bezogen.

Wenn Sie das Präfix so einstellen, /usr/localdass Sie es verwenden sudo, möchte ich es in meinem Benutzerverzeichnis haben. Sie können Ihr Präfix mit überprüfen npm prefix -g.

Altair
quelle