Ich bin neu zu grunzen und npm. Also versuche ich ein "Kochbuch-Beispiel" auf der Website " http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end-developer#front_end_developers ". . Sie sollten jetzt nicht dort suchen müssen, aber ich dachte, es könnte gut sein, die Website zu teilen. So weit so gut, bis es um die globale Installation geht. (Ok, einige Fehler musste ich herausfinden, aber jetzt arbeite ich npm).
Wenn es darum geht, etwas global zu installieren, stecke ich fest.
Was ich bisher getan habe, um die globale Installation eines Pakets zu testen:
Testverzeichnis erstellt
grunttest
In diesem Verzeichnis:
npm install -g jshint
Ausgabe kann ich sehen:
npm http GET https://registry.npmjs.org/jshint
npm http 304 https://registry.npmjs.org/jshint
...
npm http 304 https://registry.npmjs.org/string_decoder
C:\Program Files\nodejs\node_modules\npm\jshint -> C:\Program Files\nodejs\node_modules\npm\node_modules\jshinnt
[email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
Ich erkenne gerade den 304, was in Ordnung sein sollte, da nur gesagt wird, dass die Ressource seit der letzten Installation (einige Minuten zuvor) nicht geändert wurde.
Überprüfen, ob der Jshint vorhanden ist mit:
`npm -global list`
Ausgabe:
[email protected] C:\Program Files\nodejs\node_modules\npm
├── [email protected]
├── [email protected]
├─...
├──
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
├─┬ [email protected] extraneous
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ └─... ├── [email protected]
├── [email protected]
└── [email protected]
**npm ERR! extraneous: [email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint npm**
Fragen:
- Warum bekomme ich npm ERR! fremd ...?
- Was heißt das?
- Wie kann ich dieses Problem beheben?
Information:
Ich bin auf einem Windows-Computer Windows 7 und benutze Cygwin als Shell. Der Versuch, nur jshint ( jshint someTestfile.js
) zu verwenden, funktioniert natürlich nicht.
Danke im Voraus, Meru
jshint myfile.js
sollte jshint laufen lassenmyfile.js
.grunt-contrib-jshint
Aufgabe in Ihrem laden und konfigurierenGruntfile.js
. Das einzige, was Sie global installieren, istnpm i grunt-cli -g
der Zugriff auf dengrunt
Befehl zum Ausführen von aGruntfile.js
. Weitere Informationen finden Sie in diesem Handbuch: gruntjs.com/getting-startednpm prune
, um sie zu entfernen.npm prune --your-env
1 & 2: Dies bedeutet, dass Sie den jshint nicht in der package.json-Datei Ihres Projekts aufgeführt haben, sondern dass er global installiert ist. Es ist also kein großes Problem.
3: Um diesen irrelevanten Fehler zu vermeiden , können Sie die Installation mit der Option ausführen oder erneut ausführen
--save
. Dadurch wird Ihre package.json-Datei automatisch aktualisiert:Oder Sie müssen Ihre package.json-Datei manuell mit einem aktualisieren
"dependencies": {...}
quelle
--save
funktioniert nicht zusammen mit-g
. Die globale Paketliste enthält keine package.json.Ich habe dieses Problem behoben, indem ich
npm update
im Ordner des übergeordneten Pakets einen Fehler gemacht habe, der einige der überflüssigen Pakete aus der Liste entfernt und dannnpm uninstall <package>
für die verbleibenden wenigen ausgeführt hat.Scheint funktioniert zu haben, da ich danach keine Fehler mehr bekomme.
quelle
Ich habe es gelöst, indem ich alle Antworten kombiniert habe. Zuerst habe ich das Paket global installiert.
Da npm dieses Paket auch global installiert hat, es aber nicht zu meiner lokalen Datei package.json hinzugefügt hat, musste ich etwas dagegen tun.
Ich wähle die Lösung, um die lokale zu entfernen und sie dann global zu installieren.
Auf diese Weise habe ich keine Warnungen mehr und vermassle die Datei package.json nicht.
quelle
Ich mein Fall, ich habe diese 'npm ERR gesehen! fremde 'Nachricht in meinem Cygwin-Terminal, als ich ein' npm ls 'gemacht habe. Ich dachte, dies sei eine Art global beschädigtes Setup, nachdem ich viel gebastelt hatte. Ich lerne hier folgende Beobachtungen:
Ich 'rm package.json' und 'npm ls' zeigen keine Fehlermeldung mehr an. Ich sage also, dass immer der aktuelle Speicherort auf das Vorhandensein des Ordners 'node_modules' und der Datei package.json überprüft wird, da diese bei der Prüfung zuerst priorisiert werden. Wenn diese fehlen, wird die Prüfung im übergeordneten Ordner fortgesetzt und so weiter. und wenn Sie viele Codefragmente viel herumgebastelt haben, haben Sie möglicherweise viele, viele Ordner node_modules und die Datei package.json verstreut. Hier ist nichts wirklich beschädigt, im Gegensatz zu den Erfahrungen, die wir bei der J2EE Java-Entwicklung / Eclipse-IDE oder an den Tagen gemacht haben, an denen wir regedit verwenden müssen, um Einstellungen in Windows zu ändern.
quelle
In meinem Fall lag es daran, dass der Paketname in seiner
package.json
Datei nicht mit dempackage.json
im abhängigen Modul aufgeführten Abhängigkeitsnamen übereinstimmte . Mein Fehler, da es sich um ein neues Modul handelt, das ich erstellt habe, aber schwer zu erkennen ist, da npm keinen Hinweis gibt.Dies geschah bei Verwendung der
dependencies: { "my-module": "file:local-modules/mymodule" }
Syntax mit einem Tippfehler im Namen "my-module".quelle
Dies liegt an der Tatsache, dass sich Ihr Paket nicht in Ihrer package.json befindet. Wenn Sie es hinzufügen, wird das Problem gelöst, sehen Sie sich bitte das Bild unten an:
quelle