wake-up-neo.com

Behebung von 'fs: Die Neubewertung von nativen Modulquellen wird nicht unterstützt' - graceful-fs

Vor kurzem habe ich zu Node v.6 gewechselt, und es entstanden immer mehr Probleme mit der Ausführung normaler Builds wie grunt/gulp/webpack

Zum Beispiel:

$ 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 im Ordner/node_modules installiert werden (und sogar über rm -rf node_modules neu installiert werden).

Die meisten dieser Fehler sind zeilenartig

(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 willkürliche Zahl

Wie in dieser Ausgabe habe ich eingereicht - in angle2-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 führen Sie dann aus

npm info graceful-fs -v
3.3.6

ok, lass uns upgraden oder entfernen und neu installieren:

npm i [email protected]
npm i [email protected]
Sudo npm i [email protected] -g

alle Ergebnisse in

npm info graceful-fs -v
3.3.6

So, jetzt bin ich mit graceful-fs 3.3.6 oder noch schlimmer in einigen Modulen Abhängigkeiten, wie z

$ angular2-seed
$ npm install

//other lines..
npm WARN deprecated [email protected]: graceful-fs v3.0.0 and before 
will fail on node releases >= v7.0. Please update to [email protected]^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?
161
shershen

Ich hatte dieses Problem und konnte es beheben, indem ich npm aktualisierte.

Sudo npm update -g npm

Vor dem Update war das Ergebnis von npm info graceful-fs | grep 'version:':

version: '3.3.12'

Nach dem Update ist das Ergebnis:

version: '3.9.3'
169
Asimov

Geben Sie npm list graceful-fs ein und Sie werden sehen, welche Versionen von graceful-fs derzeit installiert sind.

In meinem Fall habe ich:

npm list graceful-fs

@request/[email protected] /projects/request/promise-core
+-- [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] 
  `-- [email protected]
    `-- [email protected]
      `-- [email protected]

Wie Sie sehen können, hängt gulp im Grunde von einer sehr alten Version ab. Leider kann ich das nicht selbst mit npm update graceful-fs aktualisieren. gulp müsste ihre Abhängigkeiten aktualisieren. Wenn Sie also einen solchen Fall haben, haben Sie Pech. Möglicherweise öffnen Sie jedoch ein Problem für das Projekt mit der alten Abhängigkeit - d. H. gulp.

73
analog-nico

Behebung dieses Fehlers durch Neuinstallation von gulp

npm uninstall gulp
npm install gulp
21
Hamza Erbay

Wie beschrieben hier , können Sie auch den Befehl versuchen

npm cache clean

Das hat es für mich behoben, nachdem die anderen Schritte nicht vollständig zu Ergebnissen geführt hatten (abgesehen von der Aktualisierung von allem).

1
serv-inc

Ich konnte es beheben durch:

  1. aktualisierung durch package.json
  2. löschen des node_modules Ordners
  3. npm install ausführen
1
szuuuken

Ordnerinhalte von node_modules löschen und ausführen

npm install bower
npm install

löste das Problem für mich!

1
David

Nur um darauf hinzuweisen, dass Cordova seine eigene Npm mit der Graceful-Fs-Abhängigkeit einbringt. Wenn Sie Cordova verwenden, stellen Sie sicher, dass es die neueste ist, damit Sie auch die neuesten Graceful-Fs daraus erhalten.

1
Yohio

wenn Sie nvm ausführen, möchten Sie möglicherweise nvm use <desired-node-version> ausführen. Dadurch bleibt der Knoten mit npm konsistent

0
Nicwenda

Bei meinem Cordova-Projekt hat die Deinstallation und Installation von cordova -g das Problem für mich behoben.

npm uninstall -g cordova
npm install -g cordova
0

In dem Bericht heißt es: In ... vendor/win32-x64-48/binding.node fehlt eine Datei

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.

0
David H

Oder versuchen Sie, node zu aktualisieren:

brew upgrade node

Wenn es mit brew installiert ist (wie in meinem Fall). Sudo npm update -g npm hat das "gleiche" Problem für mich nicht gelöst.

0
Aziz Alto