Node Sass не вдалося знайти прив’язку для вашого поточного середовища


499

У мене виникають проблеми зі створенням програми, оскільки node-sass постійно не вдається з помилкою.

ПОМИЛКА у відсутній прив'язці /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node
Вузол Sass не знайшов прив’язки для вашого поточного середовища: OS X 64-розрядна з Node 0.10.x

Я спробував бігати

npm rebuild node-sass

що говорить

Бінарний тонкий; вихід.

Під час бігу node -vя отримую v6.2.2

Що відрізняється від того, що говорить про помилку sass «Вузол 0.10.x». Я не можу зрозуміти, чому вона отримує неправильну версію. Я також спробував видалити папку node_modules і запустив оновлення npm або встановити npm, що не вирішило проблему. Будь-які ідеї?


8
Ви використовуєте диспетчер версій вузла, такий як nvm? Якщо ви інколи переплутуєте деякі шляхи модуля npm, вони намагаються використовувати версію, відмінну від поточної. Якщо ні, то ви завжди можете спробувати видалити node_modulesпапку та встановити залежність знову
Василь Дінінський,

2
Гей, я не використовую nvm, і я спробував видалити / повторно встановити. не вдалося.
wazzaday

яке ваше середовище розвитку? ви використовуєте VS.NET 2105?
Майк Андерсон

@VasilDininski Я використовую nvm, що мені робити?
Субхан Саріф

1
Відкрийте Visual Studio 2017 Перейдіть до Інструменти -> Опції ... Перейдіть до проектів та рішень -> Управління веб-пакетами перемістіть $ (PATH) на верхню частину цього списку та закрийте це вікно. У моєму випадку це рішення працювало , тому що моя версія вузла 11.x
Alreadytakenindeed

Відповіді:


721

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

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

Знайдено прив’язки для наступного середовища:
    - OS X 64-бітний з Node.js 4.x

Як вирішити мою проблему

Зайшовши в папку проекту та виконайте:

npm rebuild node-sass

6
Працював спочатку, але все ще мав проблеми. Отже, я перейшов до /usr/local/lib/використання CMD + SHIFT + G у пошуку та перейменованому папці node-sass. Потім побіг npm install node-sass -g. що виправлено. Я на Mac OS
IsmailS

Я зіткнувся з цією проблемою після оновлення nodejs до 8.xx, і це вирішило її. Велике спасибі! Вдячний!
ChiragMS

2
Не працює. Вузол: v10.7.0 вузол-Sass: v3.13.1. Каже, моє поточне середовище - 32-бітове вікно з вузлом 0.10.x, що просто не відповідає дійсності.
Bardicer

Це працювало у Windows 7 з вузлом 10.14 LTS та npm 6.4.1.
Сантон

9
Першим кроком буде видалення node_modulesі запуск, npm installа не перебудова вашого вузла-sass.
Nikhil Nanjappa

294

Примітка. Я використовую VS 2015, 64-розрядну Windows 7.

Також працює для VS 2017 та VS 2019 (від відповідей на цю посаду)

Задача Runner Explorer не може завантажити завдання

Для VS 2015

  • Перейдіть до: Інструменти> Параметри> Проекти та рішення> Зовнішні веб-інструменти

Для VS 2017 (.3)

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

У VS 2017 та 2019 також потрібно поставити $ (PATH) вище $ (VSINSTALLERDIR) \ Web \ External


  • Упорядкуйте так, щоб $ (PATH) був вище $ (DevEnvDir) \ Розширення \ Microsoft \ Веб-інструменти \ Зовнішній

введіть тут опис зображення


Видаливши 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
нерозвиток

6
я б ніколи цього не
зрозумів

7
Можна підтвердити, це все-таки річ у VS 2019.
JamesT

140

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

Помилка: відсутня прив'язка C: \ Development {ProjectName} \ node_modules \ node-sass \ vendor \ win32-ia32-47 \inding.node
Вузол Sass не зміг знайти прив'язку для вашого поточного середовища: 32-розрядна версія Windows з Node.js 5 .x
Знайдено прив’язки для наступних середовищ:
   - Windows 64-розрядні з 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-адреса випуску вузла-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.
Маркус Крістостомо

138

Для мене працювали:

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


4
Це працює і для мене. Очевидно конфлікт версії вузла. Дякую!
Liz Lemon

1
Довелося видалити з нього таку директорію: C: \ Users \ your_user_name \ AppData \ Roaming \ npm-cache
Matt

7
Це спрацювало! npm rebuild node-sassне працював для мене. (Mac з WebStorm)
Джекпіл

3
Це єдине рішення, яке працювало на мене! npm rebuild node-sass --forceтеж не працював.
bigsee

Це слід позначити як відповідь. До цих пір я не мав уявлення, чому моє рішення продовжувало націлювати на вищу версію вузла і продовжувало давати мені повідомлення про помилку щодо вузла. У мене був крок у трубопроводі Azure, щоб примусити версію вузла до тієї, яку я хочу. Тепер я можу зняти цей крок!
Джеймс Блекберн

117

Просто виконайте: npm rebuild node-sass --force


Якщо вищезгадане з якоїсь причини не вийшло для вас, спробуйте:

  1. Видалити node-sassпапку підnode_modules
  2. npm install

У моєму випадку його також не вдалося знайти 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

1
Вищезазначене працювало для мене, хоча це траплялося двічі у двох різних програмах у двох різних папках. Установка python була одноразовою (ienot потрібна, коли я отримав помилку вдруге в іншому додатку), і мені не потрібна остаточна команда збірки npm run (не явно принаймні), але мені потрібно було запустити відновлення --сила двічі для обох моїх додатків.
Грег Тревеллік

31

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 завантажить правильні прив’язки для операційної системи контейнера.

Дивіться мою справу докори, щоб дізнатися більше.


1
Зустрічаючись з тією ж проблемою в різних середовищах: - розробник під MacOS для одиничних тестів - розробник за допомогою docker-compose (для повних системних взаємодій) - prod у альпійській ОС; Монтаж (чи ні) , і npm install(чи ні) в докер проблематично при наявності архітектури залежних модулів: отримання Darwin або Linux бінарних файлів в залежності від того, де ви npm iТрапляється для NodeJS модулів , як node-sass, або@google-cloud/pubsub
Лоран

Дякую за те, що ви згадали про рішення для докера. Це саме те, що було виправлено для мене!
Джошуа Соле

У мене /node_modulesбуло те, що прив'язували до контейнера в /app/node_modules. Незважаючи на те, що мій NODE_PATHбув /node_modules(який існував) і мав бути в іншому місці .., він випадково почав викликати проблеми. Я встановив в обох місцях, щоб мої розробники для кращих працювали з моїм кодом vscode. оні. дивні речі. Дякую за згадку докера <3
Нік Брейді

25

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

PS: Якщо ви повністю видалите папку node_modules у вашому проекті та повторно побудуєте з нуля, npm завантажить правильні залежності для вашої поточної версії системи та вузла.


слава богу за це. Я насправді спробував спочатку зменшити вузол на моїй книзі macbook, а потім через півгодини здався
Cpt. Senkfuss

17

в деяких випадках потрібно видалити та встановити бібліотеку вузлів-sass. Спробуйте:

npm uninstall --save node-sass

і

npm install --save node-sass

подивіться на цю свою роботу для мене, посилання Стек тут



12

У моєму конкретному випадку жодна з наведених відповідей не спрацювала. Отже, що спрацювало:

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

11

* Відповідь Докера тут *

Дайте відповідь, якщо ви бачите цю проблему чи щось подібне і використовуєте Docker.

Причина: Коли ви копіюєте поточну структуру файлів у контейнер Docker, ви можете копіювати модулі вузлів з однієї системи ОС в іншу (наприклад, контейнер Mac на Linux).

Рішення:

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

node_modules

Це призведе npm installдо встановлення прив’язок для середовища докера, а не для локальної машини.


9

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

    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_project
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

8

У мене була така ж проблема з 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 \inding.node
Кешування бінарного файлу C: \ Users \ user \ AppData \ Roaming \ npm-cache \ node-sass \ 3.13.1 \ win32-x64-48_binding.node `


7

node-sassМодуль вузла використовує darwinдвійковий файл, який залежить від версії вузла. Ця проблема виникає, коли двійковий файл не завантажений або неправильно завантажений двійковий файл.

Помилка sass вузла

Перевстановіть вузлові модулі завантажать очікуваний двійковий код node-sass: -

Для користувачів Mac:

rm -rf node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

Для користувачів Windows:

rmdir node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

але для деяких користувачів потрібно перевірити сумісність версії вашого вузла з версією node-sass. Зробіть його сумісним за допомогою таблиці нижче та запустіть над командами знову, щоб усунути цю проблему.

Версія, сумісна з вузлом JS, версією node-sass

Якщо проблема все ще не виправлена, перевірте список підтримуваних вузлів-sass: - https://github.com/sass/node-sass/releases/


5

Для Visual Studio 2015/2017 клацніть правою кнопкою миші на package.jsonі натисніть на Відновити пакети.

Це дозволить переконатися, що npm від зовнішніх інструментів Visual Studio Tools запускається, і прив’язка буде відновлена ​​на основі цього.


Приємне і просте рішення, і єдине, що працювало з кількох вище, що я спробував. Дякую!
Елі Гассерт

4

Це відбувається, коли на робочій станції ви запускаєте оновлення Node.js і використовуєте node-sass у всьому світі.

Тож вам слід видалити node-sass у всьому світі

npm uninstall -g node-sass

І тоді вам доведеться знову встановити її глобально

npm install -g node-sass

Гарне пояснення!
Михайло Чеховський

@ Fay007 Ви могли б надати більше інформації? У вас помилка? Повідомте мене
Доменіко

4

Просто оновіть кеш npm і:

npm cache clean --force  
npm install

Це завжди працює для мене в тому самому випадку.

UPD: Ваша проблема може бути також через відсутність глобальної sasslib.

npm install -g sass

4

Просто запустіть коментар thats it.

npm відновити node-sass

насолоджуйтесь кодуванням ...


ОП заявила, що він спробував це, і це не вийшло. Так само і я зробив, і для мене це теж не вийшло. Натомість мені довелося погіршити версію вузла, на якому я працював.
Адріан Реджерс

4

У поштових залежностей для вузла-зухвалості є не отримують встановлені без package.json всередині вузол-Sass

Запуск вирішується вручну для мене

node node_modules/node-sass/scripts/install.js 

кредит: посилання


Дякую за це, це прекрасно вирішило моє питання! :)
Льюїс Кларк

Радий знати :)
Mukundhan

3

Зазвичай це відбувається тому, що середовище змінилося з часу запуску npm install. Біг npm rebuild node-sassбудує прив'язку для поточного середовища.


3

Я користувач Windows 8, нещодавно оновлений Node до v8.11.1npm до v6.0.0та зіткнувся з подібною проблемою. Нічого не працювало - npm install -g node-sass@latestабо видалення node-sassкаталогу з проекту node_modules/- ніхто з них не працював на мене.

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

Отже, деякі відповіді направили мене подивитися на версії Node-Sass, і я знайшов рішення.

  1. Крок 1. Перевірте версію node-sass за допомогою команди: 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файл у папку версій

І ви закінчили.

У моєму випадку версія node-sass була, 4.9.0а вузол відсутній win32-x64-57_binding.node, тому я завантажив .nodeфайл із версії 4.9.0 та дотримувався кроку 4.


2

Аналогічна помилка, з якою я зіткнувся з 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

Я знайшов рішення

  • Встановити версію Windows Nodejs ,
  • Додайте шлях до вузла js (C: \ Program Files \ nodejs) у зовнішні веб-інструменти (див. Відповідь Роб Скотта),
  • Перемістіть шлях nodejs вище $ (PATH).

2

Це працювало для мене Видалення node_modulesта відновлення пакунків із IDE, а потімnpm rebuild node-sass


2

У мене виникла ця проблема під час переходу з VS 2017 Professional на Enterprise

  1. Закрити VS
  2. Видалити node_modules
  3. Відкрити VS
  4. Клацніть правою кнопкою миші package.json і виберіть "відновити пакети"

2

Жодне з рішень встановлення / відновлення не вирішило проблему для мене (за допомогою gulp).

Ось як я це вирішив:

1) Завантажте відсутній файл прив’язки із сховища .

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

3) Створіть node_modules/node-sass/vendor/darwin-x64-11(шлях від повідомлення про помилку) каталог, якщо він не існує.

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



2

Якщо ваш термінал / командний рядок говорить:

Node Sass не зміг знайти прив'язку 
для вашого поточного середовища: 
OS X 64-розрядна з Node 0.10.x

і ви спробували такі команди, як:

npm кеш чистий --force 
rm -rf модулі вузлів 
npm встановити 
npm відновити node-sass 
npm відновити node-sass

& все ще НІЧОГО не працює ..

Просто запустіть це в терміналі вручну:

node node_modules / node-sass / script / insta.js

тепер біжи

npm start або старт пряжі


1
Нарешті! Дякую. Це єдине рішення, яке працювало для мене поки що. Я боровся два дні. Не могли б ви пояснити, в чому причина?
burakcalik

1
ТАК ТАК ТАК! Нарешті! Джекі - спасибі тобі так багато!
користувач2051552

1

node-sass запускає сценарій встановлення для завантаження необхідного бінарного файлу. Якщо немає змінних оточуючих середовищ, .npmrc змінних або встановлених аргументів процесу, то двійкові дані визначаються за допомогою поточної платформи процесів, архітектури та версії NI ABI. Отже, якщо ви запустили встановлення вузла в одній програмі, а потім спробуєте запустити node-sass в додатку з іншою платформою / архітектурою / ABI, двійковий файл не буде завантажений. Рішення полягає в ручному завантаженні двійкової або виправлення бінарної версії за допомогою змінної середовища (SASS_BINARY_NAME) або змінної .npmrc (sass_binary_name)

Ви можете побачити логіку цього в функції getBinaryPath в node-sass \ lib \ extensions.js


1

У мене було те саме питання. Я не зміг знайти тут належного робочого рішення, тому знайшов своє:

Натхнений рішенням Роб-Скотта та іншими вказівками на те, що у нас може бути встановлена ​​2 версії Node.js, я пішов C:\Program Files (x86)\nodejsі зрозумів, що у мене встановлена ​​версія node.js на додаток до установки за замовчуванням VS

Моє рішення було досить простим:

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

Можливо, Node.js не налаштований у змінній PATH, але це моє дуже швидке рішення, мої 2 копійки :)


1

Спершу потрібно було вибрати нову версію вузла за замовчуванням nvm use ***або nvm install ***потім видалити все в node_modules в проекті і npm iзнову.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.