Привязки 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
раздел.
Это шаги, которые я предпринял, чтобы решить мою проблему.
Я обновил свой узел вручную до последней версии
Переустановил узел-sass
npm установить узел-sass
3. Исправление аудита npm для исправления некоторых уязвимостей.
`npm audit fix`
5.npm установить узел-sass
`npm install node-sass`
после этого работало и скомпилировалось должным образом. Прошу прощения, если что-то, связанное с моим ответом, будет неправильным. Я только начинающий. Надеюсь, это сработает для вас
Нет необходимости в sudo или переустановке. Это всегда работало для меня:
nvm use 0.12.2