Привязки libsass не найдены при использовании node-sass в nodejs

64

Я хочу использовать модуль node-sass в моем приложении node.js v0.12, чтобы извлечь выгоду из производительности libsass.
Я выполнил npm i node-sass, чтобы установить модуль, никаких ошибок до сих пор.

Теперь начинается беспорядок:
Если я просто открываю REPL в терминале, чтобы опробовать node-sass, тогда все будет хорошо, но если я включу его в мои файлы проекта и запустим node myfile.js, тогда я получу следующее сообщение об ошибке:

Error: `libsass` bindings not found. Try reinstalling `node-sass`?

В описании модуля на npmjs.com указано, что может возникнуть проблема с разрешением #!/usr/bin/env node в Ubuntu и как это исправить, но это не так моя машина.
Я не мог найти ничего полезного, поэтому надеюсь, что вы поможете мне.

Я использую node v0.12.2 под Ubuntu 14.10.

P.S.: Я уже пытался переустановить node -sass, но безуспешно. Ничего не меняется.

  • 0
    Если ответ Филиппа решил ваши проблемы, пожалуйста, примите. Это исправило мою проблему.
  • 0
    Я столкнулся с этим в моем проекте Ionic после того, как я обновил его до поздней версии NodeJS - команда out put инструктирует запустить npm rebuild node-sass , который избавился от ошибки для меня / моего окружения.
Теги:
npm
node-sass
libsass

12 ответов

116
Лучший ответ

Вероятно, вы пытались переустановить node -sass при использовании

npm install node-sass

или

npm uninstall node-sass
npm install node-sass

Но node -sass - это C-версия Sass. Вы должны использовать npm rebuild:

npm rebuild node-sass
  • 3
    Это сработало и для меня, не хочешь объяснить, почему? :)
  • 77
    Не работал для меня.
Показать ещё 3 комментария
278

Если вы используете node 4.x или позже, вам необходимо переустановить gulp -sass с помощью

npm uninstall --save-dev gulp-sass
npm install --save-dev gulp-sass@2
  • 2
    Спасибо! Я всегда забываю, как решить эту проблему, и на сегодняшний день это было самое простое и быстрое решение.
  • 3
    Это исправило мою проблему! Был в результате обновления узла значительно.
Показать ещё 11 комментариев
21

Я исправил эту проблему, удалив существующую папку /node_modules и запустив npm update

  • 1
    попробовал это на самом деле, но в этом случае / node_modules находился под контролем SVN ... удаление каталога приводило к нарушению синхронизации дерева SVN. В противном случае это хороший вариант!
  • 0
    Время от времени это случается и со мной, и удаление node_modules и повторный запуск npm install работают для меня.
Показать ещё 5 комментариев
8

Это единственное решение, которое сработало для меня,

sudo npm install -g n
sudo n 0.12.7
npm install node-sass@2
sudo npm -g install node-gyp@3
npm rebuild node-sass
8

Это обходное решение (http://forum.ionicframework.com/t/error-running-gulp-sass/32311/20) сработало.

Начиная с этой настройки:

Кордова CLI: 5.3.3 Gulp версия: версия CLI 3.9.0 Gulp local: Локальная версия 3.9.0 Ионная версия: 1.1.0 Ионная версия CLI: 1.6.5 Ionic App Lib Версия: 0.3.9 Версия ios-deploy: не установлена Версия ios-sim: 5.0.1 ОС: Mac OS X Yosemite Node Версия: v4.1.1 Версия Xcode: Xcode 6.4 Build версия 6E35b

Я нашел решение, чтобы избежать использования команды "sudo". Нам нужно прежде, чем исправить разрешения npm, следующие за этим: https://docs.npmjs.com/getting-started/fixing-npm-permissions и исправления разрешений для Node здесь: http://mawaha.com/permission-fix-node-js/ После этого мы можем проверить и переустановить программное обеспечение без "sudo" для npm, n или ionic.

Я выполнил следующий шаг:

npm install -g n
rm -R node_modules/ 
npm install [email protected] 
npm -g install node-gyp@3
npm uninstall gulp-sass
npm install gulp-sass@2 
npm rebuild node-sass 
ionic setup sass 

Почему node [email protected]? Поскольку он работает с новейшей ионной версией: https://github.com/driftyco/ionic/pull/4449

  • 0
    Спасибо, так, так, очень, очень. Наконец исправили через 2 часа <3
4

Сочетание двух ответов выше работало для меня, плюс дополнения:

sudo npm uninstall --save gulp-sass
npm install --save gulp-sass@2
npm update
npm rebuild node-sass
3

Я решил это создать правильный каталог с указанным файлом binding.node. Вы можете загрузить привязки из github

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

Посмотрите в сообщении об ошибке путь, где он пытается найти привязку. В моем случае:

C:\Users\Мартейн\Documents\node_modules\gulp -sass\ node_modules\node -sass\поставщика\win32-x64-46

Итак, я создаю эту карту win32-x64-46 и копирую привязку из github.

2

Мое решение состояло в том, чтобы перейти на v0.10.25 (попробуйте sudo n 0.10.25, если вы используете n)

1

Это была проблема с версией Node для меня, попробуйте использовать nvm для возврата вашей версии на что-то вроде: 0.10.32. Это сработало для меня. Я работал 4.2.2

1

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

0

Нет необходимости в sudo или переустановке. Это всегда срабатывало для меня:

nvm use 0.12.2
0

Я решил эту проблему с помощью обновления моего gcc с 4.4.x до 4.7.x

Ещё вопросы

Сообщество Overcoder
Наверх
Меню