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. Проверьте версию узла с помощью команды: версия
npm view node-sass version
({your version}
на шаге 4) - Шаг 2: перейти к выпуску Node-Sass
- Шаг 3. Получите ваш релиз и найдите недостающий узел в активах, перечисленных в каждой версии, и загрузите файл
- Шаг 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
- Закрыть VS
- Удалить node_modules
- Открыть VS
- Щелкните правой кнопкой мыши 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
Перезапустите проект.