Spróbuj ponownie zainstalować `node-sass` na węźle 0.12?

263

Chciałbym użyć zestawu startowego Google. Zainstalowałem node.js v0.12.0 node-sassi gulp.

A potem pobiegł:

$ sudo npm install

Kiedy pisałem, gulp servedostałem ten błąd:

Using gulpfile ~/web-starter-kit/gulpfile.js Starting 'styles'... 'styles' errored after 93 ms 
Error: `libsass` bindings not found. Try reinstalling `node-sass`? at getBinding

Ponownie zainstalowałem węzeł i łyk, ale to nie pomaga.

Co mam teraz zrobić?

Takagi Akihiro
źródło
Obniżenie węzła działało dla mnie.
zero_cool

Odpowiedzi:

386

Jeśli wersja twojego węzła to 4 i używasz gulp-sass, spróbuj

npm uninstall --save-dev gulp-sass

npm install --save-dev gulp-sass@2
Roma Rush
źródło
5
naprawiono problem ze mną w węźle 4.1 :) ty
Zalaboza
Naprawiono dla mnie także Debian 8.1 i Node 4.1. Wielkie dzięki.
VinceOPS,
3
Dziękuję Ci. Prawdopodobnie ta odpowiedź powinna być oznaczona jako „właściwa”)
Paul Paca-Vaca Seleznev
1
Dziękuję, spędziłem dużo czasu próbując rozwiązać ten problem i to było rozwiązanie, które zadziałało!
HjalmarCarlson
1
Rozwiązuje również problem z wersją 6.2.2 od grudnia 2016 r. Dzięki!
digitalformula,
341

Znalazłem to przydatne polecenie:

npm rebuild node-sass

Z rebuild dokumentacji :

Jest to przydatne, gdy instalujesz nową wersję węzła (lub przełączasz wersje węzłów) i musisz ponownie skompilować wszystkie swoje dodatki C ++ z nowym plikiem binarnym node.js.

http://laravel.io/forum/10-29-2014-laravel-elixir-sass-error

Denis C. de Azevedo
źródło
5
Mam wiele błędów, takich jak Python not supported byiFailed at the [email protected] install script 'node build.js'
AlikElzin-kilaka
14
To powinna być zaakceptowana odpowiedź, ponieważ zajmuje minimum pracy, aby rozwiązać rzeczywisty problem.
TheHippo
1
@ AlikElzin-kilaka: Upewnij się, że masz zainstalowany Python i zmienną środowiskową PYTHON ustawioną tak, aby wskazywała instalację.
Roope Hakulinen
2
Próbowałem tego przed wszystkim innym i działało idealnie. Na zdrowie
ConorLuddy,
15
OtrzymujęError: Cannot find module 'node_modules/node-sass/node_modules/pangyp/bin/node-gyp'
lrkwz
233

Wystąpił ten błąd przy użyciu węzła 0.12.0i został on naprawiony przez usunięcie istniejącego /node_moduleskatalogu i uruchomienie npm update.

createbang
źródło
To nie zadziała, jeśli nie masz wszystkich zależności określonych w pakiecie.json
Victor Marchuk,
Musiałem usunąć folder, następnie uruchomić instalację npm, a następnie aktualizację npm. Ale to wskazało mi właściwy kierunek. Dzięki!
Timothy
Usunięcie folderu node_modules spowodowało: Error: Cannot find module 'c:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'podczas działania npm update.
AlikElzin-kilaka
41
To drastyczne rozwiązanie. Wystarczy użyć, npm rebuild node-sassktóry jest specjalnie do przebudowywania dodatków C ++.
Chris Sattinger
2
Nic dla mnie nie naprawia :(
Isochronous
84

npm rebuild node-sassdawał mi błędy (Ubuntu) i npm install gulp-sassnie spowodował, że błąd zniknął.

Widziałem rozwiązanie na GitHub, które działało dla mnie:

npm uninstall --save-dev gulp-sass

npm install --save-dev gulp-sass

Pupper
źródło
Działa dzisiaj dla wersji
@lastest
22

Miałem ten sam problem:

  • instalowanie sass węzła
  • po zakończeniu instalacji zostanie wyświetlony komunikat informujący o pomyślnym zakończeniu instalacji
  • następnie zostanie poproszony o ponowną instalację węzła sass

Rozwiązaniem jest zainstalowanie wersji 2 węzła-sass, która obsługuje bieżące wersje węzła. Zobacz https://github.com/sass/node-sass/issues/490#issuecomment-70388754

Biegać:

npm install node-sass@2

Następnie ponownie przetestuj:

$ npm ls node-sass
myapp@0.0.0 /var/www/myapp
└── node-sass@2.0.1

$ gulp sass
[09:48:42] Using gulpfile /var/www/myapp/gulpfile.js
[09:48:42] Starting 'sass'...
[09:48:42] Finished 'sass' after 15 ms
mikemaccana
źródło
8
Dla tych z nas, którzy używają „grunt-sass”, upewnij się i zaktualizuj: „npm install --save-dev grunt-sass”
natepers
19

Jeśli używasz Gulpa, spróbuj:

npm install gulp-sass

Miałem ten sam problem i problem gulp-sassstanowił pakiet.

George
źródło
użycie tego po „odinstalowaniu npm --save-dev gulp-sass” naprawiło problem
Sul Aga
2
npm install grunt-sassnaprawiono problem dla mnie.
Paul Schreiber,
11

Miałem dzisiaj ten sam problem w pracy.

npm rebuild node-sass

wykonałem dla mnie robotę

bin2hex
źródło
9

Obniżenie węzła do wersji 0.10.36 powinno to zrobić w tym wątku na stronie github w węźle sass: https://github.com/sass/node-sass/issues/490#issuecomment-70388754

Jeśli masz NVM, możesz po prostu:

nvm install 0.10

Jeśli nie, możesz znaleźć NVM i instrukcje tutaj: https://www.npmjs.com/package/nvm

Natepers
źródło
rozwiązałem problem dla mnie. nvm jest również dostępny przez homebrew dla użytkowników komputerów Mac: „brew install nvm”. po przejściu do wersji 0.10.36 upewnij się, że jest ona naprawdę aktywna: „node -v”
cjoy
9
Obniżenie poziomu węzła samo w sobie jest bardziej obejściem niż odpowiedzią.
mikemaccana
1
Ten błąd został naprawiony w [email protected], jak wykryto @mikemaccana na końcu biletu, do którego odnosi się ta odpowiedź. Zobacz jego komentarz w tym wątku.
natepers
1
Użytkownicy „grunt-sass” powinni zaktualizować po aktualizacji „node-sass”, jeśli nadal występują problemy: „npm install --save-dev grunt-sass”
natepers
3

Ta odpowiedź jest nieco ortogonalna w stosunku do PO, ale -

Powiązania libsass nie instalują się poprawnie z otoki węzła sass w Node v4.0.0. Otrzymałem taki sam komunikat o błędzie jak w pytaniu (Error: 'libsass' bindings not found. Try reinstalling 'node-sass') ale ostatecznie odinstalowałem Node v4.0.0 i zainstalowałem v0.12.7 za pomocą nvm, za pomocą tego skryptu:

https://gist.github.com/brock/5b1b70590e1171c4ab54

a teraz libsass i sass-node zachowują się poprawnie.

ericsoco
źródło
2

możesz także chcieć npm remove gulp-sassi ponownie zainstalować gulp-sass, jeśli zmieniłeś wersje węzłów.

4m1r
źródło
2

Mam ten sam problem, gdy wersja gulp-sass to 1.3.0, i napraw ją po aktualizacji do 2.1.0.

Kos
źródło
1

Jeśli przyszedłeś tutaj, ponieważ zaktualizowałeś system nodejs i nagle Twoja aplikacja emberjs ^ 1.13 nie działa z tym komunikatem, upewnij się, że nie używasz przestarzałej wersji ember-cli-sass. Musisz to zrobić rm -rf node_modules bower_components dist tmpw aplikacji Ember, a następnie zaktualizować package.jsonodpowiednią ember-cli-sasswersję, a na końcu npm install --save-dev. To naprawiło to dla mnie, bez konieczności przebudowywania lub zmieniania jakichkolwiek innych zależności.

handwovensole
źródło
1

Usunąłem cały /node_modulesfolder, a następnie uruchomiłem npm installi działało.

Mam węzeł v5.5.0, npm 3.3.12

Florin Dobre
źródło
0

Dla mnie ten problem został spowodowany w moim systemie kompilacji (Travis CI) przez zrobienie czegoś głupiego w moim .travis.ymlpliku. W efekcie dzwoniłem npm install wcześniej nvm use 0.12 , a to powodowało, node-sassże budowano go 0.10zamiast 0.12. Moim rozwiązaniem było po prostu przeniesienie nvm usesię z sekcji .travis.ymlpliku na miejsce before_scriptprzed npm installpoleceniem, które było w plikubefore_install sekcji.

W twoim przypadku jest prawdopodobne, że w jakimkolwiek procesie, od którego zaczynasz, gulpjest używana inna wersja node(niż można by oczekiwać).

Alan H.
źródło
0

Miałem ten sam problem, co @Kos, tylko z jakiegoś powodu musiałem zmodyfikować pakiet gulp-sass ze starego package.jsonpliku, który miałem. Następnie zainstalował zależności obecnie i teraz w końcu działa!

Shay
źródło
0

Mój problem polegał na tym, że byłem na komputerze node version 0.12.2, ale miał on starą 1.x.xwersję npm. Zaktualizuj swoją wersję npm: sudo npm install -g npmPo zakończeniu usuń wszystkie istniejące node-sassi ponownie zainstaluj je za pomocą npm.

k00k
źródło
0

Musisz użyć właściwej wersji. Próbować:

nvm use 0.12
alexfigtree
źródło