Node Sass не может найти привязку для вашей текущей среды
Как исправить не удается найти модуль node-sass
У меня возникают проблемы с созданием приложения, потому что node-sass продолжает вылетать из-за ошибки.
ОШИБКА в отсутствующей привязке /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node Node Sass не смог найти привязку для вашей текущей среды: 64-разрядная версия OS X с Node 0.10.x
Я пробовал бежать
Бинарный — это нормально; выход.
При беге node -v Получаю v6.2.2
Это отличается от того, что в sass-ошибке написано «Node 0.10.x». Я не могу понять, почему он получает неправильную версию. Я также попытался удалить папку node_modules и запустить npm update или npm install, оба из которых не устранили проблему. Любые идеи?
- 9 Используете ли вы диспетчер версий узлов, например nvm ? Если вы иногда это делаете, это портит некоторые пути к модулю npm, и они пытаются использовать версию, отличную от текущей. Если нет, вы всегда можете попробовать удалить node_modules папку и снова устанавливаем зависимости
- 2 Привет, я не использую nvm, и я попробовал удалить / переустановить. неудачно.
- какая у вас среда разработки? вы используете VS.NET 2105?
- @VasilDininski Я использую nvm, что мне делать?
- 3 Откройте Visual Studio 2017. Перейдите в Инструменты -> Параметры… Перейдите в Проекты и решения -> Управление веб-пакетами, переместите $ (ПУТЬ) в верхнюю часть этого списка и закройте это окно. В моем случае это решение сработало, потому что моя версия узла — 11.x
1 2 Далее
У меня такая же проблема
В вашем gulpfile есть ошибка:
Ошибка: отсутствует привязка E: \ allapp \ badshaindiancuisine \ node_module \ node-sass \ vendor \ win32-x64-46 \ binding.node
Node Sass не смог найти привязку для вашей текущей среды: 64-разрядная версия Windows с Node.js 4.x
Найдены привязки для следующего окружения:
— 64-разрядная версия OS X с Node.js 4.x
Как решить мою проблему
Зайдя в папку проекта, а затем выполните:
- 6 Первоначально работал, но проблемы все еще были. Итак, я пошел в /usr/local/lib/ используя CMD + SHIFT + G в поисковике и переименовав папку node-sass. Затем побежал npm install node-sass -g . это исправлено. Я на Mac OS
- Я столкнулся с этой проблемой после обновления nodejs до 8.x.x, и это решило ее. Большое спасибо! Оценил!
- 2 Не работает. Узел: v10.7.0 узел-sass: v3.13.1 . Говорит, что моя текущая среда — это 32-битные окна с узлом 0.10.x, что просто неверно.
- Это работало в Windows 7 с узлом 10.14 LTS и npm 6.4.1.
- 11 Первым шагом будет удаление вашего node_modules и беги npm install вместо того, чтобы перестраивать ваш node-sass.
Обратите внимание, что я использую VS 2015, 64-битную Windows 7.
Также работает для VS 2017 и VS 2019 (из ответов на этот пост)
Task Runner Explorer не может загружать задачи
Для VS 2015
- Перейдите в: Инструменты> Параметры> Проекты и решения> Внешние веб-инструменты.
Для VS 2017 (.3)
- Инструменты> Параметры> Проекты и решения> Управление веб-пакетами> Внешние веб-инструменты (для @nothrow)
В VS 2017 и 2019 вам также нужно поставить $ (PATH) выше $ (VSINSTALLERDIR) \ Web \ External
- Измените порядок так, чтобы $ (PATH) находился выше $ (DevEnvDir) \ Extensions \ Microsoft \ Web Tools \ External
Удаление node_modules и бег npm install а потом npm rebuild node-sass Ничего не сделал.
- 5 Если вы используете VS2015, вам обязательно нужно внести изменения, описанные в этом ответе. Вероятно, это все, что вам нужно сделать, чтобы решить эту проблему.
- 12 Это также сработало и для новой установки VS2017.
- 8 В VS2017.3 путь к настройке Tools > Options > Projects and Solutions > Web Package Management > External Web Tools
- 8 блин! Я бы никогда этого не понял . все для компиляции глупого sass с глупым узлом в глупом javascript
- 7 Могу подтвердить, это все еще актуально в VS 2019.
У меня была такая же проблема в среде Windows, я получил следующую ошибку:
Ошибка: отсутствует привязка C: \ Development
\ node_modules \ node-sass \ vendor \ win32-ia32-47 \ binding.node
Node Sass не смог найти привязку для вашей текущей среды: 32-разрядная версия Windows с Node.js 5.x
Найдены привязки для следующих сред:
— 64-разрядная версия Windows с Node.js 6.x
Ни один из npm команды, перечисленные в других ответах здесь ( npm install , npm rebuild node-sass и т. д.) работали.
Вместо этого мне пришлось загрузить недостающую привязку и поместить ее в соответствующую папку назначения.
Привязки можно найти на git. Сопоставьте файл с именем папки, указанным после /node_modules/node-sass/vendor/ в вашем сообщении об ошибке (в вашем случае ‘darwin-x64-11’, поэтому вам нужен darwin-x64-11_binding.node файл).
Создайте недостающую папку в своем проекте ( /node_modules/node-sass/vendor/darwin-x64-11 ), скопируйте .node файл в новый каталог и переименуйте его в binding.node .
URL выпуска Node-sass: https://github.com/sass/node-sass/releases
- 3 Тоже у меня работало, спасибо! Пытался очистить node_modules, удалить кеш, rifraf, перестроить node-sass, перестроить из VS2015 вместо командной строки с npm, и в конце это исправило.
- 1 @ JanCiołek У меня такое случалось только один раз, поэтому мне никогда не приходилось переделывать это. Я не уверен, была ли это конкретная версия или была просто проблема с конкретной установкой, но я не нашел лучшего решения (другие ответы здесь не помогли мне). Это было громоздко или нет, но казалось, что это необходимое решение для некоторых вариантов этой проблемы.
- 1 @Beofett Эта ошибка съела много моего времени, я сделал все, что упоминалось в этой теме, но я забыл запустить компиляцию. Спасибо!
- 4 Это единственный ответ, который рабочий для меня, но нашел мою привязку в github.com/sass/node-sass/releases вместо связанного URL. Ура
- 2 Спасибо @Beofett. Ваш ответ спас меня, чтобы запустить мой проект Ionic в Windows и Mac OSX.
У меня работали:
Просто удалите папку node-sass и запустите npm install .
- 4 У меня тоже работает. Явно конфликт версии узла. Благодарность!
- 1 Пришлось удалить следующий каталог: C: \ Users \ your_user_name \ AppData \ Roaming \ npm-cache
- 7 Это сработало! npm rebuild node-sass у меня не сработало. (Mac с WebStorm)
- 3 Это единственное решение, которое у меня сработало! npm rebuild node-sass —force тоже не сработало.
- Это должно быть отмечено как ответ. До сих пор я понятия не имел, почему мое решение продолжало ориентироваться на более высокую версию node и продолжало выдавать мне сообщение об ошибке nodeass. У меня был шаг в конвейере Azure, чтобы заставить версию узла соответствовать той, которую я хочу. Теперь я могу убрать этот шаг!
Просто выполните: npm rebuild node-sass —force
Если описанное выше по какой-то причине не сработало, попробуйте следующее:
- удалять node-sass папка под node_modules
- npm install
В моем случае он также не смог найти Python .
Следующая процедура решила проблему (Windows):
- 1 Вышеупомянутое сработало для меня, хотя это происходило дважды в двух разных приложениях в двух разных папках. Установка python была одноразовой (требуется ienot, когда я получил ошибку во второй раз в другом приложении), и мне не нужна была последняя команда сборки npm run (по крайней мере, явно), но мне нужно было запустить rebuild — дважды форсировать для обоих моих приложений.
npm rebuild node-sass —force
Или, если вы используете node-sass внутри контейнера:
docker exec npm rebuild node-sass —force
Эта ошибка возникает, когда node-sass не имеет правильной привязки для текущей операционной системы.
Если вы используете Docker, эта ошибка обычно возникает при добавлении node_modules непосредственно в файловую систему контейнера в вашем Dockerfile (или смонтируйте их с помощью тома Docker).
Архитектура контейнера, вероятно, отличается от вашей текущей операционной системы. Например, я установил node-sass на macOS, но мой контейнер работает под управлением Ubuntu.
Если вы принудительно перестроите node-sass из контейнера, node-sass загрузит правильные привязки для операционной системы контейнера.
См. Мой репродукционный футляр, чтобы узнать больше.
- 1 Столкновение с той же проблемой в разных средах: — разработка под MacOS для модульных тестов — разработка с использованием docker-compose (для полного взаимодействия с системой) — разработка под ОС на базе alpine; Монтаж (или нет) и npm install (или нет) в докере проблематично при наличии модулей, зависящих от архитектуры: получение Дарвин или linux двоичные файлы в зависимости от того, где вы npm i Это происходит с модулями NodeJS, такими как node-sass , или @google-cloud/pubsub
- Спасибо, что упомянули решение для докера, это именно то, что исправило его для меня!
- я имел /node_modules который был привязан к контейнеру в /app/node_modules . Хотя мой NODE_PATH был /node_modules (который действительно существовал) и должен был быть в другом месте . это случайно начало вызывать проблемы. Я установил в обоих местах, чтобы мои разработки для красивее работали с моим vscode. упс. странные вещи. Спасибо за упоминание докеров .dockerignore , а внутри добавить:
Это вызовет npm install чтобы установить привязки для среды докера, а не для среды вашего локального компьютера.
В моем конкретном случае ни один из приведенных выше ответов не помог. Итак, что сработало:
npm cache verify чтобы проверить, что в кеше ничего не осталось
Хотя я не пытался воспроизвести последовательность, работала комбинация вышеперечисленного. Кроме того, вы также можете попробовать:
npm install —save node-sass или npm install node-sass -g
node-sass модуль узла использует darwin двоичный файл, который зависит от версии node. Эта проблема возникает, если двоичный файл не загружается или загружается неправильный двоичный файл.
Переустановка модулей узла загрузит ожидаемый двоичный файл node-sass: —
Для пользователей Mac:
Для пользователей Windows:
но для некоторых пользователей вам необходимо проверить совместимость версии вашего узла с версией node-sass. Сделайте его совместимым, используя приведенную ниже таблицу, и снова запустите вышеуказанные команды, чтобы исправить эту проблему.
Если проблема все еще не устранена, проверьте список поддерживаемых сред node-sass: — https://github.com/sass/node-sass/releases/
- Кроме того, если вы клонируете другой проект, вам необходимо изменить узел в вашем package.json на текущую версию узла.
У меня такая же проблема
Это потому, что я установил npm, используя другую версию nodejs, попробуйте удалить папку node_modules, установив и запустив
Если вы используете nvm, сделайте
У меня была такая же проблема с 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 \ Roaming \ npm-cache \ node-sass \ 3.13.1 \ win32-x64-48_binding.node`
Для Visual Studio 2015/2017 щелкните правой кнопкой мыши на своем package.json и нажмите «Восстановить пакеты».
Это гарантирует, что npm из внешних инструментов Visual Studio Tools запущен, и привязка будет перестроена на основе этого.
- Хорошее и простое решение, единственное, что работало из нескольких, которые я пробовал выше. Благодарность!
Если ваш терминал / командная строка говорит:
и вы пробовали следующие команды, например:
И все еще НИЧЕГО не работает ..
Просто запустите это в терминале вручную:
- 1 Наконец-то! Спасибо. Это единственное решение, которое у меня сработало. Бьюсь два дня. Не могли бы вы объяснить, в чем причина?
- 1 ДА ДА ДА! В заключение! Джеки — Оооочень большое спасибо.
Я пользователь 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: Проверьте свою версию node-sass с помощью команды: npm view node-sass version (в
на шаге 4) - Шаг 2: Перейти к выпускам Node-Sass
- Шаг 3: Получите свой выпуск и найдите недостающий узел в активах, перечисленных под каждым выпуском, и загрузите файл
- Шаг 4: Доберитесь до вашего ПК C:\Users\
\AppData\Roaming\npm-cache\node-sass\ \ и ставим скачанный .node файл внутри папки версии
В моем случае версия node-sass была 4.9.0 а отсутствующий узел был win32-x64-57_binding.node , поэтому я скачал .node из версии 4.9.0 и выполните шаг 4.
- 1 Ого . мы застряли на этом на целый час на компьютере коллеги, прежде чем нашли этот ответ. Больше ничего не работало, даже если весь каталог node_modules был уничтожен. Это полностью решило проблему для нас, большое спасибо за вашу помощь.
Это происходит, когда на вашей рабочей станции вы запускаете обновление Node.js и используете node-sass глобально.
Итак, вы должны удалить node-sass глобально
И затем вам нужно установить его глобально, снова
- Хорошее объяснение!
- @ Fay007, не могли бы вы предоставить дополнительную информацию? У вас есть ошибка? Дайте мне знать
В публиковать зависимости для node-sass это не устанавливается без package.json внутри узел-sass
Запуск его вручную решил для меня
- Спасибо за это, это отлично решило мою проблему! 🙂
- Рады узнать 🙂
Обычно это происходит из-за того, что среда изменилась с момента запуска npm install . Бег npm rebuild node-sass создает привязку для текущей среды.
У меня возникла эта проблема при обновлении с VS 2017 Professional до Enterprise
- Закрыть VS
- Удалить node_modules
- Открыть VS
- Щелкните правой кнопкой мыши package.json и выберите «восстановить пакеты».
- Это самый безопасный подход для Visual Studio. Забудьте обо всех этих командах, потому что они, вероятно, не будут работать. Команды должны запускаться из тем же среда, которая является сложной частью. Позвольте Visual Studio сделать это, и все готово.
Просто обновите кеш npm и:
У меня всегда работает в одном и том же случае.
UPD: Ваша проблема также может быть связана с отсутствием глобального sasslib.
Просто запустите комментарий, вот и все.
npm перестроить node-sass
- ОП сказал, что он пробовал это, и это не сработало. И я тоже, и у меня это тоже не сработало. Вместо этого мне пришлось понизить версию используемого узла.
Похожая ошибка, с которой я столкнулся с Visual Studio 2015 Community Edition при создании приложения AspNetCore:
Из приведенной выше ошибки видно, что причина была в несоответствии версий привязок для nodejs.
Node Sass не смог найти привязку для вашей текущей среды: 32-разрядная версия Windows с Node.js 5.x
Найдены привязки для следующих сред: — 64-разрядная версия Windows с Node.js 6.x
Я нашел решение:
- Установите версию nodejs для Windows,
- Добавьте путь для узла js (C: \ Program Files \ nodejs) во внешних веб-инструментах (см. Ответ Роба Скотта),
- Переместите путь nodejs выше $ (PATH).
Это сработало для меня Удаление node_modules а затем восстановление пакетов из IDE, а затем npm rebuild node-sass
node-sass запускает сценарий установки для загрузки необходимого двоичного файла. Если переменные среды, переменные .npmrc или аргументы процесса не заданы, то двоичный файл определяется с использованием текущей платформы процесса, архитектуры и версии Node ABI. Следовательно, если вы запустите установку узла в одном приложении, а затем попытаетесь запустить node-sass в приложении с другой платформой / архитектурой / ABI, двоичный файл не будет загружен. Решение состоит в том, чтобы вручную загрузить двоичный файл или исправить двоичную версию с помощью переменной среды (SASS_BINARY_NAME) или переменной .npmrc (sass_binary_name)
Вы можете увидеть логику этого в функции getBinaryPath в node-sass \ lib \ extensions.js
Ни одно из решений по установке / восстановлению не решило проблему для меня (с использованием gulp).
Вот как я это решил:
1) Загрузите недостающий файл привязки из репозитория.
2) Переименуйте файл binding.node .
3) Создать node_modules/node-sass/vendor/darwin-x64-11 (путь из сообщения об ошибке), если он не существует.
4) Добавьте файл привязки в node_modules/node-sass/vendor/darwin-x64-11
Откройте Visual Studio 2017
Перейдите в Инструменты -> Параметры…
Перейдите в Проекты и решения -> Управление веб-пакетами
Переместите $ (PATH) в начало этого списка и закройте это окно.
Перезапустите Visual Studio.
В моем случае это сработало, потому что моя версия узла — 11.x
- 1 Однозначно верный ответ, когда в разных проектах используются разные привязки. Выполнение rebuild node-sass было недостаточно. Это исправило изменение приоритета пути.
Выполните следующие команды, у меня все отлично работает.
npm install node-sass -g
npm rebuild node-sass
ng serve —poll=2000
Я просто запускаю npm rebuild вместо npm rebuild node-sass, и проблема исчезает . Я не знаю, в чем заключается магия.
Источник