Express-Befehl nicht gefunden

137

Aus irgendeinem Grund wird nach der globalen Installation von Express auf meinem Computer mit, npm install -g expresswenn ich cdin ein Verzeichnis gehe und versuche, Express auszuführen, die folgende Fehlermeldung angezeigt:

express: command not found. 

Selbst wenn ich es mit laufe, sudobekomme ich immer noch die gleiche Ausgabe. Ich habe mehrere verschiedene Lösungen für dieses Problem ausprobiert und nichts hat funktioniert. Ich hatte einen Knoten installiert, über homebrewden einige Threads im Stapelüberlauf möglicherweise ein Problem darstellten. Daher habe ich den Knoten vollständig deinstalliert und über das Installationsprogramm auf nodejs.org neu installiert (ich verwende jetzt Version 0.10.26), und das Problem besteht weiterhin.

Wenn ich in meinen /usr/local/lib/node_modulesExpress gehe, ist dort drin, aber in / usr / local / bin gibt es nichts in Bezug auf Express. Ich bin mir nicht sicher, ob dies ein Problem ist oder nicht, aber wenn ich bedenke, dass sich in diesem Verzeichnis Binärdateien für andere global installierte Knotenpakete befinden, denke ich, dass dort möglicherweise etwas nicht stimmt.

Dies ist die genaue Ausgabe, die ich bei der Installation erhalte:

npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/accepts/1.0.0
npm http GET https://registry.npmjs.org/type-is/1.0.0
npm http GET https://registry.npmjs.org/range-parser/1.0.0
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/fresh/0.2.2
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/send/0.2.0
npm http GET https://registry.npmjs.org/methods/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.3
npm http GET https://registry.npmjs.org/utils-merge/1.0.0
npm http GET https://registry.npmjs.org/merge-descriptors/0.0.2
npm http GET https://registry.npmjs.org/escape-html/1.0.1
npm http GET https://registry.npmjs.org/serve-static/1.0.1
npm http GET https://registry.npmjs.org/qs/0.6.6
npm http GET https://registry.npmjs.org/path-to-regexp/0.1.2
npm http GET https://registry.npmjs.org/parseurl/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/type-is/1.0.0
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/methods/0.1.0
npm http 304 https://registry.npmjs.org/accepts/1.0.0
npm http 304 https://registry.npmjs.org/range-parser/1.0.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.3
npm http 304 https://registry.npmjs.org/fresh/0.2.2
npm http 304 https://registry.npmjs.org/serve-static/1.0.1
npm http 304 https://registry.npmjs.org/qs/0.6.6
npm http 304 https://registry.npmjs.org/utils-merge/1.0.0
npm http 304 https://registry.npmjs.org/merge-descriptors/0.0.2
npm http 304 https://registry.npmjs.org/escape-html/1.0.1
npm http 304 https://registry.npmjs.org/path-to-regexp/0.1.2
npm http 304 https://registry.npmjs.org/parseurl/1.0.1
npm http 304 https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/send/0.2.0
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/mime
npm http GET https://registry.npmjs.org/negotiator
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/send/0.1.4
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/fresh/0.2.0
npm http 304 https://registry.npmjs.org/negotiator
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/fresh/0.2.0
express@4.0.0 /usr/local/lib/node_modules/express
├── methods@0.1.0
├── parseurl@1.0.1
├── utils-merge@1.0.0
├── merge-descriptors@0.0.2
├── escape-html@1.0.1
├── debug@0.8.0
├── cookie-signature@1.0.3
├── range-parser@1.0.0
├── fresh@0.2.2
├── qs@0.6.6
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── path-to-regexp@0.1.2
├── type-is@1.0.0 (mime@1.2.11)
├── send@0.2.0 (mime@1.2.11)
├── serve-static@1.0.1 (send@0.1.4)
└── accepts@1.0.0 (negotiator@0.3.0, mime@1.2.11)
Tony Barsotti
quelle

Antworten:

359

Mit der Veröffentlichung von Express 4.0.0 müssen Sie dies anscheinend tun sudo npm install -g express-generator.

PeterVC
quelle
3
Das hat funktioniert, vielen Dank für Ihre Hilfe! Ich war bereit, mir in dieser letzten Nacht die Haare auszureißen.
Tony Barsotti
2
sudo wird aus den genannten Gründen nicht benötigt und funktioniert weiterhin. stackoverflow.com/questions/4938592/…
StanleyZheng
4
Schade, nicht einmal offizielle Dokumentation erwähnt es. ;-)
Azat
Wie haben Sie es gefunden, wenn dies nicht in der Dokumentation steht, wie sollen wir davon erfahren?
Startec
1
Offizielle Dokumente des FWIW erwähnen es [jetzt?] - expressjs.com/starter/generator.html
Steven R. Loomis
34

Sie müssen ausführen:

npm install -gd express-generator

Der ursprüngliche Express mit cli, jetzt der cli, aufgeteilt in ein separates Express-Generator-Paket. Ursprünglich vom Projekt generiert, wird der Express-Knoten app.js ausgeführt, da httpserver-relevanter Code in app.js und jetzt dieser Teil des Codes im folgenden Projektverzeichnis bin/www, app.js nur App-Logikcode erhalten, müssen Sie den ausführen bin/www. Nur eine sehr einfache Änderung der Anwendungs- und Verfeinerungspaketabhängigkeit.

Tearrain
quelle
2

Ich hatte diese Herausforderung einige Tage lang. Nach eingehender Suche habe ich gelernt, dass man jede verfügbare Ressource lesen muss, insbesondere aus der übergeordneten Quelle [in diesem Fall EXPRESSJS.COM]. Hier ist eine schnelle Lösung.

Ab Version 4.0+ müssen Sie nicht unbedingt den Express-Generator installieren, wenn Sie Node 8.2+ ausführen. Einfach laufen

npx express-generator

Der Express-Generator läuft genau so, wie er läuft, wenn Sie laufen:express

Weitere Informationen finden Sie unter Erste Schritte

Viel Spaß beim Lesen und Recherchieren.

HilmaStac
quelle
1

Ich habe vor kurzem versucht, Express-Generator zu installieren, aber es würde geben,

$ zsh : command not found : express

Es war nachdem ich es getan habe

$ sudo npm install -g express
$ sudo npm install -g express-generator

Aber dann sah ich das Konsolenprotokoll des Befehls npm install

/usr/local/Cellar/node/13.1.0/bin/express -> /usr/local/Cellar/node/13.1.0/lib/node_modules/express-generator/bin/express-cli.js

Dies gab einen Hinweis darauf, dass sich die ausführbare Datei im Ordner bin befindet.

Die Lösung lautet also: Öffnen Sie ~ / .zshrc oder ~ / .bashrc und exportieren Sie den Pfad wie folgt:

export PATH=/usr/local/Cellar/node/13.1.0/bin:$PATH

Es funktioniert jetzt.

TheSYNcoder
quelle