Как исправить '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 и все другие плагины и модули установлены (и даже повторно установлены через npm -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 repo https://github.com/mgechev/angular2-seed/issues/902

То, что я пытался сделать, это перейти на Node v.5 через n (https://www.npmjs.com/package/n) - это сработало. Затем удалите все папки node_modules, затем выполните

npm info graceful-fs -v
3.3.6

ok, обновить или удалить и установить новое:

npm i [email protected]
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 [email protected]^4.0.0 
as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.

Какова может быть стратегия здесь:

  • Вручную исправить все отпечатки, содержащие грациозные fs < 4.0.0?
  • Есть ли какой-нибудь глобальный переключатель для использования конкретной версии пакета?
  • Переустановите все?

Ответ 1

У меня была эта проблема, и я смог исправить это, обновив npm

sudo npm update -g npm

Перед обновлением результатом npm info graceful-fs | grep 'version:' был:

version: '3.3.12'

После обновления результат:

version: '3.9.3'

Ответ 2

Введите npm list graceful-fs, и вы увидите, какие версии изящных 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.

Ответ 3

Решил эту ошибку при переустановке gulp

npm uninstall gulp
npm install gulp

Ответ 4

Удаление содержимого папки node_modules и запуск

npm install bower
npm install

решил проблему для меня!

Ответ 5

Как описано здесь, вы также можете попробовать команду

npm cache clean

Это исправило это для меня, после того, как другие шаги не дали полностью результатов (кроме обновления всего).

Ответ 6

Просто отметим, что кордова привносит в нее собственную npm с изящной зависимостью fs, поэтому, если вы используете Cordova, убедитесь, что она самая последняя, ​​поэтому вы получаете из нее также самые изящные fs.

Ответ 7

Мне удалось исправить это:

  • обновление package.json
  • удаление папки node_modules
  • Выполнение npm install

Ответ 8

если вы используете nvm, вы можете запустить nvm use <desired-node-version> Это поддерживает node в соответствии с npm

Ответ 9

Или попробуйте обновить node:

brew upgrade node

Если он установлен с brew (как в моем случае). sudo npm update -g npm не разрешил для меня такую ​​же проблему.

Ответ 10

В отчете говорится: файл отсутствует в... vendor/win32-x64-48/binding.node

Я искал файл binding.node и нашел его в...

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

Скопируйте правильный файл с именем binding.node и он будет работать.