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

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

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

Ответ 1

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

npm install node-sass

или

npm uninstall node-sass
npm install node-sass

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

npm rebuild node-sass

Ответ 2

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

npm uninstall --save-dev gulp-sass
npm install --save-dev [email protected]

Ответ 3

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

Ответ 4

Это обходное решение (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 [email protected]
npm uninstall gulp-sass
npm install [email protected] 
npm rebuild node-sass 
ionic setup sass 

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

Ответ 5

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

sudo npm install -g n
sudo n 0.12.7
npm install [email protected]
sudo npm -g install [email protected]
npm rebuild node-sass

Ответ 6

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

sudo npm uninstall --save gulp-sass
npm install --save [email protected]
npm update
npm rebuild node-sass

Ответ 7

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

Ответ 8

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

Ответ 9

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

Ответ 10

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

Ответ 12

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

nvm use 0.12.2