2014-09-06 4 views
28

Ich bin neu bei Nodejs und ich hatte gerade Bower-Modul weltweit installiert. Seitdem gibt npm Liste Befehl die folgende Ausgabe, die ich für das im Internet gesucht, aber keine Hilfe finden konnte:Was bedeutet "ungültig" bei der Verwendung der npm-Liste?

**npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/chalk 
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/chalk/node_modules/has-ansi/node_modules/ansi-regex 
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/configstore 
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/object-assign 
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url 
npm ERR! invalid: [email protected] /usr/local/lib/node_modules/bower/node_modules/update-notifier/node_modules/string-length/node_modules/strip-ansi 
npm ERR! not ok code 0** 

Der Rest des Ausgangs ist normal und listet die installierten Module. Kann mir jemand erklären, was vor sich geht?

+0

Überprüfen Sie diese Antwort. Ich hatte das gleiche Problem und das behoben. http://stackoverflow.com/questions/25238544/npm-err-invalid-strip-ansi0-2-2 – pasine

Antwort

11

Es bedeutet, dass etwas von z. B. "async":"0.9.3" abhängt, aber wenn sie require("async") tun, denkt npm, dass sie eine andere Version bekommen werden. Überprüfen Sie außerdem, ob die Abhängigkeiten und ihre Versionen in Ihrer Datei package.json verfügbar sind.

Wenn alles richtig ist dann können Sie dieses Problem mit

npm update 

von

npm install. 
+1

Könnten Sie Ihre Antwort näher erläutern? Wenn 'somelib'' package.json' von '" async ":" 0.9.3 "abhängt, sollte npm async 0.9.3 in somelib/node_modules installieren und' require ("async") sollte Async laden 0.9.3. Könnten Sie uns wissen lassen, unter welchen Umständen eine andere Version von async geladen würde? Ohne die Hilfsbereitschaft Ihrer Antwort zu bezweifeln, verstehe ich das nicht ganz. – mikemaccana

+2

@mikemaccana 'somelib's' package.json' installiert immer die Modulversion, die in 'somelib'' package.json' lokal erwähnt wird. Es wird also innerhalb des Moduls keine Probleme verursachen. Wenn Sie jedoch in Ihrer Projektkonfiguration etwas wie "npm install async @ 0.6" und in Ihrer Datei "package.json" die Abhängigkeit as 'async: 0.9.x' festgelegt haben, dann tritt dieser Fall auf. – Ravi

+1

Ah. Mein Projekt-Setup würde normalerweise 'npm install' (ohne irgendwelche Optionen) ausführen und alles installieren, was im' Paket ist.json, weil alle Abhängigkeiten in 'package.json' (oder der Shrinkwrap-Datei) liegen sollten. – mikemaccana

0
gefolgt lösen

ich einen verwandten, aber unterschiedlichen Fehler bekommen (aber hier gelandet, also ist ich zu beantworten hier) wo nach npm update würde ich bekommen. (Eine solche Ausgabe mit npm install, FWIW)

[email protected] /home/malcolm/myapp 
├── [email protected] invalid 

Das beeminder Paket ist, das ich halten, so in meinem Haupt-app ich seine semver zu latest gesetzt hatte. Dies schien vorher gut zu funktionieren, aber ich denke, eine neuere Version von npm mag es nicht.

Ich dachte, es war vernünftig, nur ^1.4.3 zu verwenden, denn wenn ich neue Änderungen einführe, ändere ich wahrscheinlich sowieso meinen eigenen Code. Aber wenn Sie aus irgendeinem seltsamen Grund das späteste neueste eines Pakets benötigen (einschließlich der Änderung von Änderungen!), Dann können Sie >= als Präfix anstelle von ^ verwenden.

3

Ich bekam diesen Fehler nach der Installation einer neueren Version eines Moduls, ohne mein Paket.json zu aktualisieren. Also die package.json benötigt die ältere Version, während npm list eine neuere Version in meinem node_modules Verzeichnis gefunden hat.

Mit dem folgenden Befehl habe ich die Nachricht los.

npm install {required_module}@{new_version} --save

35

Ich war immer diesen Fehler das gleiche Paket sowohl in „Abhängigkeiten“ und „devDependencies“ mit verschiedenen Versionen installiert hat.

+0

Dies sollte die akzeptierte Antwort sein – Andreas