Node Sass не может найти привязку для вашей текущей среды

У меня возникают проблемы при создании приложения, потому что node-sass продолжает сбой с ошибкой.

ОШИБКА в отсутствующей привязке /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node
Узлу Sass не удалось найти привязку для вашей текущей среды: 64-разрядная версия OS X с узлом 0.10.x

Я пытался запустить

npm rebuild node-sass

который говорит

Binary is fine; exiting.

При запуске node -v я получаю v6.2.2

Что отличается от того, что говорит ошибка sass "Node 0.10.x". Я не могу понять, почему он получает неправильную версию. Я также попытался удалить папку node_modules и запустить npm update или npm install, которые не решили проблему. Есть идеи?

Ответ 1

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

В вашем gulpfile есть ошибка:
Ошибка: отсутствует привязка E:\allapp\badshaindiancuisine\node_module\node-sass\vendor\win32-x64-46\binding.node
Node Sass не смог найти привязку для вашей текущей среды: Windows 64-bit с Node.js 4.x

Найдены привязки для следующей среды:
- OS X 64-битная с Node.js 4.x

Как решить мою проблему

Зайдя в папку проекта и затем выполните:

npm rebuild node-sass

Ответ 2

Примечание. Я использую VS 2015, 64-разрядную Windows 7.

Также работает для VS 2017 (из ответов на этот пост)

Проводник Runner не может загружать задачи

Для VS 2015

  • Перейти к: Инструменты> Параметры> Проекты и решения> Внешние веб-инструменты

Для VS 2017 (.3)

  • Инструменты> Параметры> Проекты и решения> Управление веб-пакетами> Внешние веб-инструменты (за @nothrow)

В VS 2017 вам также нужно поставить $ (PATH) выше $ (VSINSTALLERDIR)\Web\External


  • Измените порядок так, чтобы $ (PATH) был выше $ (DevEnvDir)\Extensions\Microsoft\Web Tools\External

enter image description here


Удаление node_modules и запуск npm install а затем npm rebuild node-sass ничего не сделал.

Ответ 3

У меня была такая же проблема в среде Windows, получив следующую ошибку:

Ошибка: отсутствует привязка C:\Development {ProjectName}\node_modules\node-sass\vendor\win32-ia32-47\binding.node
Узел Sass не смог найти привязку для вашей текущей среды: Windows 32-bit с Node.js 5.x
Найденные привязки для следующих сред:
- Windows 64-бит с Node.js 6.x

Ни одна из команд npm перечисленных в других ответах здесь (npm install, npm rebuild node-sass и т.д.) Не работала.

Вместо этого мне пришлось загрузить отсутствующую привязку и поместить ее в соответствующую папку назначения.

Связывание можно найти на git. /node_modules/node-sass/vendor/ файл с именем папки, идентифицированным после /node_modules/node-sass/vendor/ в вашем сообщении об ошибке ("darwin-x64-11" в вашем случае, поэтому вам darwin-x64-11_binding.node файл darwin-x64-11_binding.node).

Создать отсутствующий папку в проекте (/node_modules/node-sass/vendor/darwin-x64-11), скопируйте .node файл в новый каталог и переименовать его в binding.node.

URL-адрес выпуска узла: https://github.com/sass/node-sass/releases

Ответ 4

Работал для меня:

Просто удалите папку node-sass и запустите npm install.

Ответ 5

Выполнить: npm rebuild node-sass --force


В моем случае он также не мог найти Python.

Следующая процедура решила проблему (Windows):

npm rebuild node-sass --force
-- cannot find python.exe, if you have Python installed, add it to your path:
set PYTHON=C:\Python27\Python.exe
-- else: download python "Windows x86-64-MSI" installer from https://www.python.org/downloads/release/python-2714/
-- install python
-- at installation start check: add env variable to path
-- after successfull installation:
npm rebuild node-sass --force
-- finished successfully

Ответ 6

npm rebuild node-sass --force

Или, если вы используете node-sass внутри контейнера:

docker exec <container-id> npm rebuild node-sass --force

Эта ошибка возникает, когда node-sass не имеет правильной привязки для текущей операционной системы.

Если вы используете Docker, эта ошибка обычно возникает, когда вы добавляете node_modules непосредственно в файловую систему контейнера в вашем Dockerfile (или монтируете их с помощью тома Docker).

Архитектура контейнера, вероятно, отличается от вашей текущей операционной системы. Например, я установил node-sass на macOS, но мой контейнер работает под управлением Ubuntu.

Если вы заставите node-sass перестраиваться из контейнера, node-sass загрузит правильные привязки для операционной системы контейнера.

Смотрите мое дело с репродукцией, чтобы узнать больше.

Ответ 7

У меня была аналогичная проблема, и причина заключалась в том, что на моей машине были установлены две версии Node: одна "глобальная" и другая на уровне проекта. Sass будет правильно строить, только если сборка Gulp работает под версией Node.js 4.x, поэтому убедитесь, что вы обновили версию Node, которую используете.

PS: Если вы полностью удалите в своем проекте папку node_modules и пересоздаете с нуля, npm загрузит правильные зависимости для вашей текущей системы и версии Node.

Ответ 8

в некоторых случаях вам необходимо удалить и установить библиотеку node-sass. Пытаться:

npm uninstall --save node-sass

а также

npm install --save node-sass

посмотрите на это свою работу для меня, ссылка Stack здесь

Ответ 9

Попробуйте добавить суффикс --force

npm rebuild node-sass --force

Ответ 10

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

    throw new Error(errors.missingBinary());
    ^

Error: Missing binding /path/to/project/node_modules/node-sass/vendor/linux-x64-47/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 5.x

Found bindings for the following environments:
  - Linux 64-bit with Node 0.10.x
  - Linux 64-bit with Node.js 5.x

Это связано с тем, что я установил npm с помощью другой версии nodejs, попробуйте удалить установку и запуск папки node_modules

cd your_proyect
rm -rf node_modules
npm install
npm start or gulp or whatever

Если вы используете nvm do

nvm use stable // or your favorite version
// remove node_module directory
npm install
npm start or gulp or whatever

Ответ 11

Для моего конкретного случая ни один из приведенных выше ответов не сработал. Итак, что это сработало:

rm -rf node_modules 
rm -rf /tmp/* 
rm -rf /root/.npm/node-sass 
npm uninstall --save node-sass 
npm cache clean --force 

npm cache verify проверяет, что в кеше ничего не осталось

npm install

Хотя я не пытался воспроизвести последовательность, это была комбинация вышеупомянутого, который работал. Кроме того, вы также можете попробовать:

npm install --save node-sass или npm install node-sass -g

npm rebuild node-sass
npm install bindings

Ответ 12

У меня была та же проблема с Node v7.4.0 Current (Последние функции).

Немного прочитал здесь и понизил рейтинг Node до v6.9.4 LTS, а после запуска npm rebuild node-sass он загрузил двоичный файл и все начало работать.

Загрузка двоичного файла из https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node
Загрузите полную версию.] -:
Двоичный файл сохранен в D:\xxx\xxx-xxx\node_modules\node -sass\vendor\win32-x64-48\binding.node
Кэширование двоичного кода в C:\Users\user\AppData\Роуминг\npm-cache\node -sass\3.13.1\win32-x64-48_binding.node`

Ответ 13

Для Visual Studio 2015/2017 щелкните правой кнопкой мыши на package.json и выберите "Восстановить пакеты".

Это позволит убедиться, что npm из внешних инструментов Visual Studio Tools запущен, и привязка будет восстановлена ​​на основе этого.

Ответ 14

* Ответ, связанный с докером здесь *

Ответьте, если вы видите эту проблему, или что-то подобное, и используете Docker.

Причина. При копировании поверх текущей файловой структуры внутрь контейнера Docker, вы можете копировать модули узлов из одной системы ОС в другую (например, контейнер с Mac на Linux).

Решение:

Добавьте .dockerignore, и внутри добавьте:

node_modules

Это приведет к npm install для установки привязок для среды докера, а не для среды локального компьютера.

Ответ 15

Просто запустите комментарий, вот и все.

npm перестроить node-sass

наслаждайся кодированием...

Ответ 16

Это происходит, когда на вашей рабочей станции вы запускаете обновление Node.js, и вы используете узел-sass глобально.

Таким образом, вы должны удалить узел-sass глобально

npm uninstall -g node-sass

И тогда вы должны установить его глобально, снова

npm install -g node-sass

Ответ 17

Просто обновите кэш npm и:

npm cache clean --force  
npm install

Это всегда работает для меня в одном и том же случае.

UPD: Ваша проблема также может быть из-за отсутствия глобальной sasslib.

npm install -g sass

Ответ 18

Это обычно происходит потому, что среда изменилась с момента запуска npm install. Запуск npm rebuild node-sass создает привязку для текущей среды.

Ответ 19

Аналогичная ошибка, с которой я столкнулся с Visual Studio 2015 Community Edition, создав приложение AspNetCore:

Node Sass could not find a binding for your current environment: Windows 32-bit with Node.js 5.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
    at module.exports ([..]\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> ([..]\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (module.js:397:26)
    at Object.Module._extensions..js (module.js:404:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> ([..]\node_modules\gulp-sass\index.js:187:21)
    at Module._compile (module.js:397:26)

Вы можете видеть, что из приведенной выше ошибки причина была связана с несоответствием версии для привязок для nodejs.

Node Sass не удалось найти привязку для вашей текущей среды: 32-разрядная версия Windows с Node.js 5.x

Найдено привязки для следующих сред:   - Windows 64-бит с Node.js 6.x

Решение, которое я нашел, было

  • Установите nodejs windows version,
  • Добавить путь для node js (C:\Program Files\nodejs) в External Web Tools (см. ответ Rob Scott),
  • Переместить путь nodejs выше $(PATH).

Ответ 20

Это сработало для меня Удаление node_modules, а затем восстановление пакетов из среды IDE, а затем npm rebuild node-sass

Ответ 21

Я пользователь Windows 8, недавно обновленный Node до v8.11.1 и npm до v6.0.0 и столкнулся с подобной проблемой. Ничего не работало - npm install -g [email protected] или удалить каталог node-sass из проекта node_modules/ - ни один из них не работал для меня.

Laravel Mix выкидывал ошибку на консоль моего браузера, говоря отсутствующий узел: win32-x64-57. Я не знаю, было ли это из-за медленного подключения к Интернету или чего-то еще, узел отсутствовал во время обновления.

Поэтому некоторые из ответов заставили меня взглянуть на выпуски Node-Sass, и я нашел решение.

  1. Шаг 1. Проверьте версию узла с помощью команды: версия npm view node-sass version ({your version} на шаге 4)
  2. Шаг 2: перейти к выпуску Node-Sass
  3. Шаг 3. Получите ваш релиз и найдите недостающий узел в активах, перечисленных в каждой версии, и загрузите файл
  4. Шаг 4. Загрузите на свой компьютер C:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\ и поместите загруженный .node файл внутри папки версии

И все готово.

В моем случае версия узла дерзость была 4.9.0 и недостающий узел был win32-x64-57_binding.node, так что я скачал .node файл с 4.9.0 выпуска и последовал шаг 4.

Ответ 22

Пожалуйста, напишите ниже команду в корневой папке.

npm перестроить node-sass

100% работает...

Ответ 23

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

Вдохновленный решением @Rob-Scott и другими, указав, что у нас могут быть установлены 2 версии Node.js, я пошел в C:\Program Files (x86)\nodejs и понял, что у меня установлена версия node.js в дополнение к VS по умолчанию.

Мое решение было довольно простым:

  • Откройте "Инструменты"> "Параметры"> "Проекты и решения"> "Управление веб-пакетами"> "Внешние веб-инструменты"
  • Нажмите, чтобы add an entry (большинство слева от верхнего правого блока кнопок)
  • Введите C:\Program Files (x86)\nodejs, подтвердите, нажав enter
  • Подведите его вверху списка
  • наслаждаться

Вероятно, Node.js не настроен в переменной PATH, но это мое очень быстрое решение, мои 2 цента :)

Ответ 24

При создании изображения докеров и попытке запустить его локально я столкнулся с этой проблемой. Вам нужно добавить файл.dockerignore со следующим: .DS_Store.git.gitignore.idea log/* target tmp node_modules client/node_modules spec/internal/public/assets public/assets

Ответ 25

У меня была эта проблема при обновлении от VS 2017 Professional до Enterprise

  1. Закрыть VS
  2. Удалить node_modules
  3. Открыть VS
  4. Щелкните правой кнопкой мыши package.json и выберите "восстановить пакеты"

Ответ 26

Я должен был сначала выбрать новую версию nvm use *** nvm install *** умолчанию, nvm use *** или nvm install *** а затем удалить все в node_modules в проекте и npm i снова.

Ответ 27

Ни одно из решений по установке/перестройке не решило проблему для меня (используя gulp).

Вот как я решил это:

1) Загрузите отсутствующий файл привязки из хранилища.

2) Переименуйте файл binding.node.

3) Создайте node_modules/node-sass/vendor/darwin-x64-11 (путь от сообщения об ошибке), если он не существует.

4) Добавьте файл привязки в node_modules/node-sass/vendor/darwin-x64-11

Ответ 28

Я просто запускаю npm rebuild вместо npm rebuild node -sass и проблема ушла. Я не знаю, что это за магия.

Ответ 29

node -sass запускает установку script для загрузки требуемого двоичного файла. Если нет переменных окружения, переменных .npmrc или аргументов процесса, тогда двоичный файл определяется с использованием текущей платформы процесса, архитектуры и версии Node ABI. Поэтому, если вы запустите Node install в одном приложении, а затем попробуйте запустить node -sass в приложении с другой платформой/архитектурой/ABI, двоичный файл не будет загружен. Решение состоит в том, чтобы вручную загрузить двоичный файл или исправить двоичную версию с помощью переменной среды (SASS_BINARY_NAME) или переменной .npmrc(sass_binary_name)

Вы можете увидеть логику этого в функции getBinaryPath в node -sass\lib\extensions.js

Ответ 30

Проверьте свою систему: установлена ли в вашей системе 2 разных установки Node.js?

Если вы устанавливаете узел из nodejs, каталог установки по умолчанию - C:\Program Files\nodejs меня установлен узел версии 6.xx.

Проверьте свой каталог внешних веб-инструментов VS. C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External меня установлен узел версии 5.xx.

Одна работа:

  • Сделайте резервную копию каталога C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External.
  • Скопируйте C:\Program Files\nodejs каталога C:\Program Files\nodejs и
  • вставьте в C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External Directory.
  • Удалите каталог node_modules из вашего решения.
  • Запустите проект. Если вы получите сообщение об ошибке, повторите проект второй раз.

Если это не сработает

  • Удалите каталог node_modules из вашего решения.

ПРИМЕЧАНИЕ: $ - это командная строка

$  npm install 
…
$ npm run build:dev

Перезапустите проект.