Vor kurzem habe ich zu Node v.6 gewechselt und es entstanden immer mehr Probleme beim Ausführen normaler Builds grunt / gulp / webpack
Beispielsweise:
$ gulp
[14:02:20] Local gulp not found in ~/_Other/angular-2-ts/angular2-seed
[14:02:20] Try running: npm install gulp
während gulp und alle anderen Plugins und Module rm -rf node_modules
im Ordner / node_modules installiert (und sogar über neu installiert ) werden.
Die meisten dieser Fehler haben linienähnliche
(node:42) fs: re-evaluating native module sources is not supported.
If you are using the graceful-fs module,
please update it to a more recent version.
mit 42 als beliebige Zahl
Wie in dieser Ausgabe, die ich eingereicht habe - im Angular2-Seed-Repo https://github.com/mgechev/angular2-seed/issues/902
Was ich versucht habe, ist ein Downgrade auf Node v.5 über n ( https://www.npmjs.com/package/n ) - es hat funktioniert. Entfernen Sie dann alle node_modules
Ordner und tun Sie dies
npm info graceful-fs -v
3.3.6
ok, lass uns aktualisieren oder entfernen und neu installieren:
npm i graceful-fs@latest
npm i graceful-fs@4.1.4
sudo npm i graceful-fs@4.1.4 -g
Alle Ergebnisse in
npm info graceful-fs -v
3.3.6
So , jetzt bin ich currenlty stecken mit anmutigen-fs 3.3.6 oder noch schlimmer in einigen Modulen dependances, wie
$ angular2-seed
$ npm install
//other lines..
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before
will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0
as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
Was könnte die Strategie hier sein:
- Manuelles Patchen aller Deps, die Graceful-Fs <4.0.0 enthalten?
- Gibt es einen globalen Schalter, um eine bestimmte Paketversion zu verwenden?
- Alles neu installieren?
quelle
Antworten:
Ich hatte dieses Problem und konnte es durch Aktualisierung beheben
npm
Vor dem Update war das Ergebnis von
npm info graceful-fs | grep 'version:'
:Nach dem Update ist das Ergebnis:
quelle
nvm use v6.2.1
npm info graceful-fs -v
die Version von npm (entspricht der Ausführungnpm -v
) und NICHT Graceful-Fs zurückgegeben wird. Verwenden Sie etwas wie, um eine Graceful-Fs-Version zu erhaltennpm info graceful-fs | grep version:
.rm -rf node_modules && npm install
im Home-Ordner des Projekts aus.Geben
npm list graceful-fs
Sie ein und Sie werden sehen, welche Versionen von graceful-fs derzeit installiert sind.In meinem Fall habe ich:
Wie Sie
gulp
tief im Inneren sehen können , hängt von einer sehr alten Version ab. Leider kann ich das nicht selbst mit aktualisierennpm update graceful-fs
.gulp
müssten ihre Abhängigkeiten aktualisieren. Wenn Sie also einen solchen Fall haben, haben Sie kein Glück. Sie können jedoch ein Problem für das Projekt mit der alten Abhängigkeit öffnen, zgulp
.quelle
gulp
wird es in Version 3 nicht geändert, sondern nur in Version 4: github.com/gulpjs/gulp/issues/1571graceful-fs
Abhängigkeit des Moduls vor v4 von sichnpm
selbst (Version 3.10.3) über[email protected]
. Ich habe dies erst gesehen, als ich die globalengraceful-fs
Abhängigkeiten mit aufgelistet habenpm list -g graceful-fs
.Dieser Fehler wurde durch erneutes Installieren von gulp behoben
quelle
Inhalt des Ordners node_modules löschen und ausführen
löste das Problem für mich!
quelle
Wie hier beschrieben , können Sie den Befehl auch versuchen
Das hat es für mich behoben, nachdem die anderen Schritte nicht vollständig zu Ergebnissen geführt hatten (außer alles zu aktualisieren).
quelle
Nur um darauf hinzuweisen, dass Cordova seine eigene npm mit der Graceful-Fs-Abhängigkeit einbringt. Wenn Sie also Cordova verwenden, stellen Sie sicher, dass es die neueste ist, damit Sie auch die neuesten Graceful-Fs erhalten.
quelle
Ich konnte es beheben durch:
package.json
npm install
quelle
Wenn Sie nvm ausführen, möchten Sie möglicherweise ausführen.
nvm use <desired-node-version>
Dadurch bleibt der Knoten mit npm konsistentquelle
Oder versuchen Sie zu aktualisieren
node
:Wenn es mit installiert ist
brew
(wie in meinem Fall).sudo npm update -g npm
habe das "gleiche" Problem für mich nicht gelöst.quelle
Der Bericht besagt: Eine Datei fehlt in ... vendor / win32-x64-48 / binding.node
Ich habe nach der Datei binding.node gesucht und finde sie in ...
https://github.com/sass/node-sass-binaries
Kopieren Sie die richtige Datei mit dem Namen binding.node und es funktioniert.
quelle
Bei meinem Cordova-Projekt wurde das Problem durch Deinstallieren und Installieren von cordova -g behoben.
quelle