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

Я хочу использовать 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 и как это исправить, но это не так на моей машине.
Я не смог найти ничего полезного, поэтому надеюсь, что вы мне поможете.

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

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

13 ответов

Решение

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

npm install node-sass

или же

npm uninstall node-sass
npm install node-sass

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

npm rebuild node-sass

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

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

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

Этот обходной путь ( http://forum.ionicframework.com/t/error-running-gulp-sass/32311/20) работал от меня.

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

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

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

Я следовал за этим шагом:

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

Почему node-sass@3.3.3? Потому что он работает с последней ионной версией: https://github.com/driftyco/ionic/pull/4449

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

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

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

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

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

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

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

C: \ Users \ Мартейн \Documents\node_modules\ Глоток-дерзость \ node_modules \ узел-дерзость \ поставщика \win32-x64-46

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

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

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

Для меня эта проблема была вызвана в моей системе сборки (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 раздел.

Я решил эту проблему, обновив свой gcc с 4.4.x до 4.7.x

Это шаги, которые я предпринял, чтобы решить мою проблему.

  1. Я обновил свой узел вручную до последней версии

  2. Переустановил узел-sass

npm установить узел-sass

3. Исправление аудита npm для исправления некоторых уязвимостей.

      `npm audit fix`

5.npm установить узел-sass

       `npm install node-sass`

после этого работало и скомпилировалось должным образом. Прошу прощения, если что-то, связанное с моим ответом, будет неправильным. Я только начинающий. Надеюсь, это сработает для вас

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

nvm use 0.12.2
Другие вопросы по тегам