Błąd: ENOENT: nie ma takiego pliku lub katalogu, scandir

89

Szkieletowałem aplikację przy użyciu jhipster, który jest bramą mikrousług używającą cassandra db i używam maven do kompilacji, która kompilowała się dobrze po uruchomieniu scaffold.i komendą gulp do przeładowania interfejsu użytkownika na żywo.

Dokonałem niewielkiej zmiany w pasku nawigacyjnym i na jego stronie głównej. który również działał plikiem i wprowadził pewne zmiany w plikach json home & navbar oraz dokonał drobnych zmian, takich jak dodanie pola wyszukiwania i inne.

nie udało się przeładować. Zatrzymuję łyk i maven i ponownie je uruchomiłem. maven buduje, ale ponownie nie ładuje strony w localhost

kiedy pobiegłem łykiem, pokazuje mi ten błąd.

 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)

Czy ktoś mógłby mi powiedzieć rozwiązanie tego problemu

Dhiresh Budhiraja
źródło
Która wersja węzła? node -v
Gaël Marziou
Używam węzła w wersji 6.11.1
Dhiresh Budhiraja

Odpowiedzi:

228

Czasami pojawia się ten błąd podczas uruchamiania mojego serwera gulp. Moje obejście polega na uruchomieniu:

npm rebuild node-sass

A potem przyjemnie zaczyna się łyk.

Dave
źródło
1
Otrzymałem ten sam błąd podczas próby uruchomienia witryny KeystoneJS za pomocą $ node keystone, a Twoje obejście rozwiązało błąd. Dzięki
user3405291
1
Otrzymałem błąd „Błąd: ENOENT: nie ma takiego pliku lub katalogu, scandir” ** / node_modules / node-sass / vendor ”, to rozwiązanie pomogło mi go rozwiązać. Dzięki.
Gunarathinam,
1
Dzięki. Mam ten sam problem w projekcie Angular i rozwiązany tym poleceniem. Nowa „instalacja npm” nie może naprawić mojego błędu. Wygląda na to, że problem występuje w starej wersji „node-sass”. github.com/sass/node-sass/issues/1918
Jie
2
W moim przypadku (w Linuksie) konieczne było wcześniejsze pobranie instalatora „nodejs node_modules / node-sass / scripts / install.js”, a następnie przebudowanie
lexa-b
1
to działało dla mnie. Używam webpacka i nadal używam braintree-dropin, kiedy wszystko przestało działać! Dziękuję Ci!
Osama Ibrahim
27

Oto, co zadziałało dla mnie

$npm update
$npm install
$node node_modules/node-sass/scripts/install.js
$npm rebuild node-sass
Anurag Manikkame
źródło
2
to działa dla mnie, z wyjątkiem linii 3 zastąpiłem „nodejs” po prostu „węzłem”
wieśniak
skrypty preinstalacyjne nie są wykonywane podczas instalacji. dla mnie też działa. właśnie zastąpiony przez globalny katalog instalacyjny :)
Mukundhan,
3
node_modules / node-sass / scripts / install.js też działa.
vr_driver
jeśli z jakiegoś powodu wcześniej uruchomiłeś: npm config set ignore-scripts true to powiązanie węzła nie zostanie zainstalowane. To były moje problemy, a bieganie: node node_modules/node-sass/scripts/install.js naprawiłem mój problem
Morten Elmholt Bak
tak. Co powiedział @vr_driver. Bieganie właśnie node node_modules/node-sass/scripts/install.jsdla mnie zadziałało. Dzięki za to!
Ariella
4

Niektóre pliki mogą nie być dostępne w lokalnej wersji NodeJS, a czasami NodeJS nie wysyła o tym wiadomości. W tym przypadku --forcejest to pomocne.

npm install node-sass --force

lub

npm rebuild node-sass --force
Ali
źródło
4

W moim przypadku pomaga dopiero po wykonaniu tego polecenia:

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

A potem będzie /node_modules/node-sass/vendorfolder

Fes9L
źródło
2

Jest to problem ze starszą wersją node-sass. Nie tworzy vendor foldersię node_modules/node-sass. Zaktualizowałem wersję node-sass i działało dobrze.

Moja starsza wersja node-sass to 3.1.0

Po prostu zrobiłem:

npm install [email protected]

Powinno to również rozwiązać Twój problem.

yugantar kumar
źródło
2

Właśnie naprawiłem ten błąd. To dlatego, że próbowałem uruchomić projekt z niewłaściwego folderu.

Devin Haslam
źródło
1

Katalog dostawcy jest tworzony podczas instalacji npm. Spróbuj usunąć swoje node_modules i uruchomić npm install.

Patrycja Rychlik
źródło
1

Upewnij się, że masz plik config.json. Następnie wykonaj npm installi npm start.

Może to spowodować ten błąd, jeśli nie masz tego pliku konfiguracyjnego.

szach w persji
źródło
0

Nie ma potrzeby usuwania modułów węzłów, ponieważ wersja sass-loader jest inna

  1. Usuń pakiet-lock.json
  2. npm odinstaluj node-sass --save
  3. npm i node-sass --save
Shikhara
źródło