Ошибка: ENOENT: нет такого файла или каталога, scandir

89

Я создаю приложение с помощью jhipster, который является шлюзом микросервисов, использующим cassandra db и использую maven для сборки, которая строилась нормально после scaffold.i запускала команду gulp для живой перезагрузки ui.

Я немного изменил навигационную панель и домашнюю страницу. который также был рабочим файлом и внес некоторые изменения в файлы json для дома и панели навигации, а также внес некоторые незначительные изменения, например, добавив окно поиска и другие.

не удалось перезагрузить. Я останавливаю gulp & maven и перезапускаю их. maven строит, но снова не загружает сайт на localhost

когда я запустил gulp, он показывает мне эту ошибку.

 gulp
fs.js:952
  return binding.readdir(pathModule._makeLong(path), options.encoding);
                 ^

Error: ENOENT: no such file or directory, scandir '/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/vendor'
    at Error (native)
    at Object.fs.readdirSync (fs.js:952:18)
    at Object.getInstalledBinaries (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/extensions.js:121:13)
    at foundBinariesList (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/errors.js:20:15)
    at foundBinaries (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/errors.js:15:5)
    at Object.module.exports.missingBinary (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/errors.js:45:5)
    at module.exports (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/binding.js:15:30)
    at Object.<anonymous> (/home/hartron/foodnetteam/codebase/mandi/node_modules/node-sass/lib/index.js:14:35)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)

Может ли кто-нибудь сказать мне решение для этого

Дхиреш Будхираджа
источник
Какая версия узла? node -v
Гаэль Марциу
Я использую версию узла 6.11.1
Дхиреш Будхираджа

Ответы:

228

Я иногда также получаю эту ошибку при запуске моего сервера gulp. Мой обходной путь - просто запустить:

npm rebuild node-sass

А потом начинается приятный глоток.

Дэйв
источник
1
Я получал ту же ошибку при попытке запустить веб-сайт KeystoneJS$ node keystone , и ваш обходной путь решил ошибку. Спасибо
user3405291 04
1
Я получил ошибку «Ошибка: ENOENT: нет такого файла или каталога, scandir» ** / node_modules / node-sass / vendor », это решение помогло мне решить эту проблему. Благодарю.
Gunarathinam 05
1
Благодарю. У меня такая же проблема в проекте Angular и решается этой командой. Новая «установка npm» не может исправить мою ошибку. Кажется, проблема в старой версии "node-sass". github.com/sass/node-sass/issues/1918
Jie,
2
В моем случае (в Linux) необходимо было предварительно загрузить установщик "nodejs node_modules / node-sass / scripts / install.js", а затем перестроить
lexa-b
1
это сработало для меня. Я использую веб-пакет, и я все еще использую braintree-dropin, когда все перестало работать! Спасибо!
Усама Ибрагим
27

Вот что сработало для меня

$npm update
$npm install
$node node_modules/node-sass/scripts/install.js
$npm rebuild node-sass
Анураг Маниккаме
источник
2
это работает для меня, за исключением того, что в строке 3 я заменил "nodejs" просто "node"
сельский житель
предустановочные скрипты при установке не выполняются. у меня тоже работает. просто заменен на глобальный каталог установки :)
Мукундхан
3
node node_modules / node-sass / scripts / install.js тоже работает.
vr_driver
если вы по каким-то причинам ранее запускали: npm config set ignore-scripts true то привязка узла не будет установлена. Это была моя проблема, и она работает: node node_modules/node-sass/scripts/install.js исправлена ​​моя проблема
Мортен Эльмхольт Бак
да-а. Что сказал @vr_driver. У node node_modules/node-sass/scripts/install.jsменя бег сработал. Спасибо за это!
Ариэлла
4

Некоторые файлы могут быть недоступны в локальной версии NodeJS, и иногда NodeJS не отправляет сообщение об этом. В этом случае --forceполезно.

npm install node-sass --force

или же

npm rebuild node-sass --force
Али
источник
4

В моем случае это помогает только после выполнения этой команды:

node node_modules/node-sass/scripts/install.js

И тогда будет /node_modules/node-sass/vendorпапка

Fes9L
источник
2

Это проблема со старой версией node-sass. Он не создает vendor folderвнутри node_modules/node-sass. Я обновил версию node-sass, и у меня она отлично сработала.

Моя старая версия node-sass была 3.1.0

Я просто сделал:

npm установить node-sass@3.7.0

Это также должно решить вашу проблему.

югантар кумар
источник
2

Я только что исправил эту ошибку. Это произошло потому, что я пытался запустить проект не из той папки.

Девин Хаслам
источник
1

Поставщик каталог создается во время установки НПМ. Попробуйте удалить свои node_modules и запустить npm install.

Патриция Рычлик
источник
1

Убедитесь, что у вас есть файл config.json. Затем сделайте npm installи npm start.

Это может вызвать эту ошибку, если у вас нет этого файла конфигурации.

шах
источник
0

Нет необходимости удалять модули узлов, это из-за вашей версии sass-loader.

  1. Удалите package-lock.json
  2. npm удалить node-sass --save
  3. npm я node-sass - сохранить
Шихара
источник