web-dev-qa-db-ja.com

'fs:ネイティブモジュールソースの再評価がサポートされていない'の修正方法 - graceful-fs

最近私はNode v.6に切り替えました、そしてそれは通常のビルドgrunt/gulp/webpackを実行することでますます多くの問題を引き起こし始めました

例えば:

$ gulp
[14:02:20] Local gulp not found in ~/_Other/angular-2-ts/angular2-seed
[14:02:20] Try running: npm install gulp

gulpと他のすべてのプラグインやモジュールは/ node_modulesフォルダにインストールされています(そしてrm -rf node_modules経由で再インストールされます)。

これらのエラーのほとんどは次のような行があります

(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.

42を任意の数として

私が提出したその号のように - angular2-seedリポジトリ https://github.com/mgechev/angular2-seed/issues/902

私がやろうとしたことはn( https://www.npmjs.com/package/n )を介してNode v.5にダウングレードすることです - それはうまくいきました。それからすべてのnode_modulesフォルダを削除してから、

npm info graceful-fs -v
3.3.6

さて、newをアップグレードまたは削除してインストールしましょう。

npm i graceful-fs@latest
npm i [email protected]
Sudo npm i [email protected] -g

のすべての結果

npm info graceful-fs -v
3.3.6

だから今私は graceful-fs 3.3.6 で行き詰まっています。

$ 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 graceful-fs@^4.0.0 
as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.

ここでの戦略は何だろう:

  • Graceful-fs <4.0.0を含むすべてのプログラムに手動でパッチを適用しますか?
  • 特定のパッケージバージョンを使用するためのグローバルな切り替えはありますか?
  • すべてを再インストールしますか?
161
shershen

私はこの問題を抱えていて、npmを更新することでこれを修正することができました

Sudo npm update -g npm

更新前のnpm info graceful-fs | grep 'version:'の結果は次のとおりです。

version: '3.3.12'

更新後の結果は以下のとおりです。

version: '3.9.3'
169
Asimov

npm list graceful-fsと入力すると、現在どのバージョンのgraceful-fsがインストールされているかがわかります。

私の場合は、

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]

ご覧のとおり、gulpは非常に古いバージョンに依存しています。残念ながら、npm update graceful-fsを使って自分自身を更新することはできません。 gulpはそれらの依存関係を更新する必要があるでしょう。あなたがこのようなケースを持っているのであれば、あなたは運が悪いです。しかし、古い依存関係、つまりgulpを使ってプロジェクトの問題を開くことができます。

73
analog-nico

再インストールgulpでこのバグを解決しました

npm uninstall gulp
npm install gulp
21
Hamza Erbay

ここ に記述されているように、あなたもコマンドを試すことができます

npm cache clean

他の手順で(すべてを更新する以外に)結果が完全に得られていないため、これで問題は解決しました。

1
serv-inc

私はそれを修正することができました:

  1. package.jsonによる更新
  2. node_modulesフォルダーを削除する
  3. npm installを実行する
1
szuuuken

Node_modulesフォルダーの内容を削除して実行中

npm install bower
npm install

私のために問題を解決しました!

1
David

Cordovaが、graceful-fs依存関係を持った独自のnpmを持ってくることを指摘するために、Cordovaを使用する場合は、それが最新のものであることを確認してください。

1
Yohio

nvmを実行している場合は、nvm use <desired-node-version>を実行することをお勧めします。これにより、ノードとnpmの一貫性が保たれます。

0
Nicwenda

私のCordova-projectの場合、cordova -gをアンインストールしてインストールすると問題が解決しました。

npm uninstall -g cordova
npm install -g cordova
0

レポートには記載されています:ファイルがありません... vendor/win32-x64-48/binding.node

Binding.nodeファイルを探したところ、ファイルが見つかりました。

https://github.com/sass/node-sass-binaries

Binding.nodeという名前で正しいファイルをコピーしてください。

0
David H

あるいはnodeを更新してみてください。

brew upgrade node

それがbrewでインストールされている場合(私の場合のように)。 Sudo npm update -g npmは私にとって「同じ」問題を解決しませんでした。

0
Aziz Alto