Попробуйте переустановить `node-sass` на узле 0.12?


263

Я хотел бы использовать Google Web Starter Kit. Я установил node.js v0.12.0, node-sass& gulp.

А потом побежал:

$ sudo npm install

Когда я набрал, gulp serveто получил эту ошибку:

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

Я переустанавливал node и gulp, но это не помогает.

Что я должен делать дальше?


Понижение узла работало для меня.
zero_cool

Ответы:


386

Если у вас версия узла 4 и вы используете gulp-sass, попробуйте

npm uninstall --save-dev gulp-sass

npm install --save-dev gulp-sass@2

5
исправлена ​​проблема со мной на узле 4.1 :) ты
Zalaboza

Исправлено для меня на Debian 8.1 и Node 4.1 тоже. Большое спасибо.
VinceOPS,

3
Спасибо. Вероятно, этот ответ должен быть помечен как «правильный»)
Павел Пака-Вака Селезнев

1
Спасибо, потратили много времени, пытаясь решить эту проблему, и это было решением, которое сработало!
HjalmarCarlson

1
Также решает проблему на v6.9.2 по состоянию на декабрь 2016 года. Спасибо!
цифровая формула

341

Я нашел эту полезную команду:

npm rebuild node-sass

Из rebuild документации :

Это полезно, когда вы устанавливаете новую версию узла (или переключаете версии узла) и должны перекомпилировать все ваши дополнения C ++ с новым двоичным файлом node.js.

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


5
Получил много ошибок, как Python not supported byиFailed at the node-sass@0.8.6 install script 'node build.js'
AlikElzin-kilaka

14
Это должен быть принятый ответ, потому что он выполняет минимальную работу, чтобы решить реальную проблему.
TheHippo

1
@ AlikElzin-kilaka: убедитесь, что у вас установлен Python и переменная окружения PYTHON установлена ​​для установки.
Руп Хакулинен

2
Я пробовал это раньше всего, и это работало отлично. Приветствия
ConorLuddy

15
Я получаюError: Cannot find module 'node_modules/node-sass/node_modules/pangyp/bin/node-gyp'
lrkwz

233

Я столкнулся с этой ошибкой, используя узел, 0.12.0и она была исправлена ​​путем удаления существующего /node_modulesкаталога и запуска npm update.


Это не сработает, если у вас нет всех ваших зависимостей, указанных в package.json
Виктор Марчук,

Мне пришлось удалить папку, затем запустить npm install, затем npm update. Но это указало мне в правильном направлении. Спасибо!
Тимоти

Удаление папки node_modules вызвало: Error: Cannot find module 'c:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js'при запуске npm update.
Алик Эльзин-килака

41
Это радикальное решение. Просто используйте npm rebuild node-sassкоторый специально для перестройки аддонов C ++.
Крис Саттингер

2
Ничего не исправляет для меня :(
Изохронный

84

npm rebuild node-sass давал мне ошибки (Ubuntu) и npm install gulp-sass не устранял ошибку.

Видел решение на GitHub, которое работало на меня:

npm uninstall --save-dev gulp-sass

npm install --save-dev gulp-sass


Работал сегодня для @lastest версий
gtamborero

22

У меня была такая же проблема:

  • установка node-sass
  • в конце установки говорят, что установка успешно завершена
  • затем просят переустановить node-sass.

Решение состоит в том, чтобы установить версию 2 узла-sass, которая поддерживает текущие версии узла. См. Https://github.com/sass/node-sass/issues/490#issuecomment-70388754.

Бегать:

npm install node-sass@2

Затем повторно протестируйте:

$ 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

8
Для тех из нас, кто использует 'grunt-sass', обязательно обновите: 'npm install --save-dev grunt-sass'
natepers

19

Если вы используете Gulp, попробуйте:

npm install gulp-sass

У меня была та же проблема, и проблема была в gulp-sassпакете.


использование этого после "npm uninstall --save-dev gulp-sass" исправило проблему для меня
Сул Ага

2
npm install grunt-sassисправил проблему для меня.
Пол Шрайбер

11

У меня была такая же проблема сегодня на работе.

npm rebuild node-sass

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


9

Понижение Node до 0.10.36 должно сделать это в соответствии с этим потоком на странице github node-sass: https://github.com/sass/node-sass/issues/490#issuecomment-70388754

Если у вас есть NVM, вы можете просто:

nvm install 0.10

Если вы этого не сделаете, вы можете найти NVM и инструкции здесь: https://www.npmjs.com/package/nvm


решил проблему для меня. nvm также доступен через homebrew для пользователей Mac: "brew install nvm". после перехода на версию 0.10.36 убедитесь, что она действительно активна: "node -v"
cjoy

9
Само понижение рейтинга узла - это скорее обходной путь, чем ответ.
mikemaccana

1
Эта ошибка исправлена ​​в node-sass@2.0.1 - как @mikemaccana, обнаруженная в конце заявки, на которую ссылается этот ответ. Смотрите его комментарий в этой теме.
natepers

1
Пользователи 'grunt-sass' должны обновить после обновления 'node-sass', если у вас все еще возникают проблемы: 'npm install --save-dev grunt-sass'
natepers

3

Этот ответ немного ортогональн к ОП, но -

Привязки libsass не устанавливаются должным образом с оболочкой node-sass на Node v4.0.0. Я получил то же сообщение об ошибке, что и в вопросе (Error: 'libsass' bindings not found. Try reinstalling 'node-sass') но в итоге я удалил Node v4.0.0 и установил v0.12.7 с помощью nvm через этот скрипт:

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

и теперь libsass и node-sass ведут себя правильно.


2

Вы также можете npm remove gulp-sassпереустановить gulp-sass, если вы переключили версии узлов.


2

У меня та же проблема, когда версия gulp-sass 1.3.0, и исправляю ее после обновления до 2.1.0.


1

Если вы пришли сюда из-за того, что обновили nodejs для всей системы, и вдруг ваше приложение emberjs ^ 1.13 не работает с этим сообщением, убедитесь, что вы не используете устаревшую версию ember-cli-sass. Вы должны будете rm -rf node_modules bower_components dist tmpв Ember приложении, а затем обновить ваш package.jsonс соответствующей ember-cli-sassверсией, и , наконец npm install --save-dev. Это исправило это для меня, без необходимости перестраивать или изменять любые другие зависимости.


1

Я удалил всю /node_modulesпапку, затем запустился npm installи все заработало.

У меня есть узел v5.5.0, npm 3.3.12


0

Для меня эта проблема была вызвана моей системой сборки (Travis CI) из-за того, что я сделал что-то глупое в моем .travis.ymlфайле. По сути, я звонилnpm install раньше nvm use 0.12 , и это было причиной node-sassдля того, чтобы строить 0.10вместо 0.12. Мое решение просто nvm useвыходило из раздела .travis.ymlфайла before_scriptдо npm installкоманды, которая была в before_installразделе.

В вашем случае вполне вероятно, что любой процесс, с которого вы начинаете, gulpиспользует другую версию node(чем вы ожидаете).


0

У меня была та же проблема, что и у @Kos, только по какой-то причине мне пришлось изменить пакет gulp-sass из моего старого package.jsonфайла. Затем он установил зависимости в настоящее время и теперь, наконец, работает!


0

Моя проблема заключалась в том, что я был на машине с node version 0.12.2, но у нее была старая 1.x.xверсия npm. Обязательно обновите вашу версию npm: sudo npm install -g npmКак только это будет сделано, удалите все существующие node-sassи переустановите их через npm.


0

Вам нужно использовать правильную версию. Пытаться:

nvm use 0.12
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.