Aus irgendeinem Grund wird nach der globalen Installation von Express auf meinem Computer mit, npm install -g express
wenn ich cd
in ein Verzeichnis gehe und versuche, Express auszuführen, die folgende Fehlermeldung angezeigt:
express: command not found.
Selbst wenn ich es mit laufe, sudo
bekomme 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 homebrew
den 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_modules
Express 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)
quelle
Sie müssen ausführen:
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ührenbin/www
. Nur eine sehr einfache Änderung der Anwendungs- und Verfeinerungspaketabhängigkeit.quelle
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
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.
quelle
Ich habe vor kurzem versucht, Express-Generator zu installieren, aber es würde geben,
Es war nachdem ich es getan habe
Aber dann sah ich das Konsolenprotokoll des Befehls npm install
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:
Es funktioniert jetzt.
quelle