856 Stimmen

Wie behebe ich den Fehler "Cannot find module" mit Node.js?

Nachdem ich ein Modul von GitHub heruntergeladen und die Anweisungen zum Erstellen befolgt habe, versuche ich, es in ein bestehendes Projekt zu ziehen:

> npm install ../faye

Das scheint zu klappen:

> npm list
/home/dave/src/server
 faye@0.7.1
   cookiejar@1.3.0
   hiredis@0.1.13
   redis@0.7.1

Aber Node.js kann das Modul nicht finden:

> node app.js
node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'faye'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)

Ich möchte wirklich verstehen, was hier vor sich geht, aber ich bin etwas ratlos, wo ich als Nächstes suchen soll. Irgendwelche Vorschläge?

10voto

MrCranky Punkte 1459

Dieser Fehler kann auftreten, wenn Sie require eines Moduls, das eine fehlende oder falsche main Feld in seiner package.json. Auch wenn das Modul selbst installiert ist, muss npm/node eine einzelne .js-Datei als Einstiegspunkt zu Ihrem Modul verwenden. Wenn die main Feld nicht vorhanden ist, sucht es standardmäßig nach index.js im Ordner Ihres Moduls. Wenn die Hauptdatei Ihres Moduls no index.js genannt wird, kann es nicht in der Lage sein require es.

Entdeckt beim Drehen eines browserify -basiertes Modul in ein CommonJS require -fähigen Modul; browserify sich nicht um die fehlenden main Der Fehler war also unbemerkt geblieben.

5voto

Yasir Punkte 295
  • Führen Sie die folgenden Befehle Schritt für Schritt aus. Das hat mein Problem behoben:

npm cache clean -force
rm paket-lock.json
rm -r node_modules
npm i --save --legacy-peer-deps

4voto

Yevgeny Simkin Punkte 27016

Ich habe gerade ein ungewöhnliches Szenario gefunden, das für jemanden von Nutzen sein könnte und eine Art Ablenkungsmanöver ist.

Ich bekam auch die Fehlermeldung Cannot Find Module, aber seltsamerweise funktionierte alles perfekt in meiner lokalen (auf dem Mac gehosteten) Node.js-Umgebung. Dieses Problem trat nur auf, wenn der Code auf unserem Linux-Server bereitgestellt wurde.

Nun... es stellte sich heraus, dass es sich um einen Tippfehler handelte, den (anscheinend) die Mac-basierte Node.js-Installation gerne ignorierte.

Die Aufnahme sah folgendermaßen aus:

var S3Uploader = require('./S3Uploader.class');

Aber die eigentliche Datei hieß "s3Uploader.class.js".

Beachten Sie die unterschiedliche Schreibweise von "s" und "S" zwischen dem Code und dem Dateinamen.

Für den Fall, dass keine der anderen Lösungen Ihr Problem löst, überprüfen Sie bitte dreimal, ob Sie die Zeichen in Ihrem Dateinamen nicht falsch geschrieben haben :)

und DUH!

4voto

PrashanthiDevi Punkte 75

Entfernen Sie Ihr node_module Stammordner von Ihrem Projekt (z.B.: myApp ). Gehe zu myApp und geben Sie dann im Terminal folgenden Befehl ein

>myApp>npm install

Es werden alle für Ihr Projekt erforderlichen Abhängigkeitsmodule installiert.

4voto

Dave Punkte 2667

PRO TIPP:

Dieser Fehler ist mir passiert, als ich gegen Müdigkeit und eine leichte Krankheit ankämpfte, weil ich Folgendes eingegeben habe node blah anstelle von npm blah .

Die erhaltene Fehlermeldung war nicht wütend genug, um mich auf meine eigene Dummheit aufmerksam zu machen!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X