npm WARN notsup OPTIONALE ABHÄNGIGKEIT ÜBERSPRINGEN: Nicht unterstützte Plattform für [email protected]

111

Ich versuche, dieses Projekt https://github.com/Soundnode/soundnode-app auszuführen, nachdem ich meine Minimatch-Version auf 3.10.9 aktualisiert habe. Ich erhalte diesen Fehler

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (Knotenmodule \ Webpack \ Knotenmodule \ Watchpack \ Knotenmodule \ chokidar \ Knotenmodule \ fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Nicht unterstützte Plattform für fsevents1. " os ":" darwin "," arch ":" any "} (aktuell: {" os ":" win32 "," arch ":" ia32 "})

Meine Konfiguration ist Node v - 4.4.2 npm v- 3.10.9 Ich arbeite unter 32-Bit-Windows-Betriebssystem

Aishwary Tiwari
quelle
1
Klingt für mich nicht nach einem Fehler - haben Sie trotzdem Probleme, den Code auszuführen? npm WARNist genau das - eine Warnung, die es vielleicht wert ist, beachtet zu werden, aber eigentlich nichts kaputt gemacht hat.
Aurora0001
2
Und diese spezielle Warnung sagt Ihnen nur, dass eine optionale Abhängigkeit nicht installiert wurde, weil Ihre Plattform nicht den Anforderungen entsprach. In diesem Fall sucht es Darwin und Sie sind auf win32
Dave V
Es ist ein Grunzprojekt, nachdem ich diesen Befehl "npm install -g grunt-cli" ausgeführt habe, versuche ich, npm install auszuführen, wenn ich diese Warnung erhalte.
Aishwary Tiwari
1
@AishwaryTiwari, haben Sie tatsächlich einen Fehler erhalten oder funktioniert der Code nicht? Es ist unwahrscheinlich, dass Warnungen ein tatsächliches Problem darstellen, da (wie in der Fehlermeldung angegeben) eine optionale Abhängigkeit übersprungen wurde.
Aurora0001
1
Es gibt eine Pull-Anfrage, die das Problem behebt: github.com/npm/npm/pull/19198 Sie können diese Pull-Anfrage abonnieren, sodass Sie ein Update erhalten, wenn sie geschlossen wird.
RiZKiT

Antworten:

150

Es ist eine Warnung, kein Fehler. fseventsDies tritt auf, weil es sich um eine optionale Abhängigkeit handelt, die nur verwendet wird, wenn das Projekt in einer MacOS-Umgebung ausgeführt wird (das Paket bietet "Native Access to Mac OS-X FSEvents").

Und da Sie Ihr Projekt unter Windows fseventsausführen , wird es als irrelevant übersprungen.

Es gibt eine PR, um dieses Verhalten hier zu beheben: https://github.com/npm/cli/pull/169

piotr.d
quelle
34
Ist nicht etwas optional und abhängig, das sich selbst widerspricht?
Martijn Burger
7
Das ist eher eine theoretische Frage. Vielleicht conditional dependencywäre es besser? Das Benennen ist schwer. Ich denke, es war nicht einfach, einen guten Namen für diesen Fall zu finden, während man ihn kurz hielt.
piotr.d
10
npm installieren - nicht optional
suiwenfeng
5
Ich stimme vollkommen zu, @DemPilafian. Daher habe ich meine ursprüngliche Antwort bearbeitet und "nur" entfernt. Ich persönlich behandle Warnungen wie Fehler, aber in diesem Fall, IMHO, sollte dies nicht als Warnung, sondern als Information protokolliert werden, da Sie in der Windows-Umgebung nichts tun können, um die Warnung zu entfernen.
piotr.d
23
Gute Antwort, wie werde ich es jetzt los?
TetraDev
32

Dies scheint immer noch ein Problem zu sein, das dazu führt, dass Paketinstallationen mit Warnungen abgebrochen werden, dass optionale Pakete aufgrund der "nicht unterstützten Plattform" nicht installiert werden.

Das Problem betrifft den "Shrinkwrap" oder package-lock.jsonder nach jeder Ausführung des Paketmanagers bestehen bleibt . Nachfolgende Versuche schlagen weiterhin fehl, da auf diese Datei anstelle von verwiesen wird package.json.

Durch Hinzufügen dieser Optionen zum npm installBefehl sollten Pakete erneut installiert werden können.

   --no-optional argument will prevent optional dependencies from being installed.

   --no-shrinkwrap argument, which will ignore an available package lock or
                   shrinkwrap file and use the package.json instead.

   --no-package-lock argument will prevent npm from creating a package-lock.json file.

Der vollständige Befehl sieht folgendermaßen aus:

    npm install --no-optional --no-shrinkwrap --no-package-lock

nJoy!

Nickl-
quelle
1
Ist es riskant, das --no-optionalFlag für Code zu setzen, der nur funktioniert, um die Warnung zu entfernen? Warum ist es nicht standardmäßig eingestellt?
Cederlof
4
Dies kann keine Lösung sein, da die Verwendung von package-lock.json eine gute Sache ist und diese Lösung das Gegenteil nahe legt.
ismailarilik
@ismailarilik Mit dieser Lösung kann ich Pakete installieren, damit ich mit meiner Arbeit fortfahren kann.
Nickl
"--no-optional" ist eine wirklich, wirklich schlechte Idee. Es ist normalerweise in Ordnung, die Warnung zu ignorieren. Sie können auch verwenden npm install -f: github.com/angular/angular/issues/13935
FoggyDay
12

Verwenden des Parameters --force:

npm i -f
JFs
quelle
2
Ich habe die Installation einmal mit diesem Befehl erzwungen und jetzt, wenn ich starte, habe npm installich keine Warnungen, danke!
Allenile
1
Beim Ausführen dieses Befehls sind einige Fehler aufgetreten, aber nach dem erneuten Ausführen der npm-Installation waren die Warnungen verschwunden! Vielen Dank, Sir
ccoutinho
Sie installieren also in Ihrem Projekt diese nutzlosen Abhängigkeiten (auf einem Windows-Computer), um die Warnungen zu erhalten? Wenn ja, hoffe ich, dass das Baumschütteln sie im Produktionsgebäude loswird. Ich mag die Problemumgehung. Auf meinem Bildschirm werden apfelbezogene Dinge entfernt.
Josep Alacid