Усунення несправностей Node.js
Цей документ допоможе розробникам, які користуються локальним середовищем ServBay, вирішити типові проблеми під час використання пакетів Node.js.
Помилка "Не знайдено версію команди Node.js/npm/pnpm/yarn" або "Команду не знайдено"
Коли ви використовуєте Node.js, npm, pnpm чи yarn у ServBay, і натрапляєте на подібне повідомлення про помилку, це означає, що система не змогла знайти зазначену вами версію Node.js:
bash
Warning: Specified Node.js version '22' for 'node' not found.
If this is not your intention, please delete the 'NODE_VERSION' configuration
from the '.servbay.config' file in the current directory.
1
2
3
2
3
Зазвичай це пов’язано з тим, що потрібна версія Node.js ще не встановлена в ServBay, або ви хочете використовувати Node.js, встановлений через інші менеджери (наприклад, nvm
, homebrew
), та через налаштування оточення сервіс не може їх розпізнати.
Порада
Після встановлення ServBay система налаштовує скриптові псевдоніми (Script Alias), щоб віддавати пріоритет пакетам Node.js із ServBay. Якщо у ServBay немає обраної версії, система послідовно намагається знайти її серед версій Node.js, встановлених через nvm
, а потім через homebrew
. Якщо жодне джерело не містить потрібної версії – виникає описана вище помилка.
Причини проблеми:
- Не встановлено відповідну версію Node.js безпосередньо у застосунку ServBay.
- Ви використовуєте
nvm
абоhomebrew
для керування версіями Node.js, але змінні середовища (зокремаPATH
абоNVM_BIN
) налаштовано неправильно, і тому ServBay не може знайти зовнішню версію Node.js під час автоматичного перемикання.
Як вирішити:
Якщо ви вже встановили nvm
і через нього інсталювали потрібну версію Node.js, але все ще бачите цю помилку, найімовірніше у вашому конфігураційному файлі shell (наприклад, ~/.zshrc
, ~/.bash_profile
) неправильно або взагалі не задано змінну середовища NVM_BIN
. Під час коректної інсталяції nvm
автоматично прописує цю змінну, яка вказує місце розташування виконуваного файлу Node.js.
Вам потрібно перевірити й, якщо необхідно, виправити налаштування, пов’язані з nvm
у вашому shell-конфігу (наприклад, у файлі ~/.zshrc
чи ~/.bash_profile
), переконатися що змінна NVM_BIN
встановлена й експортована, а потім перезавантажити конфігурацію (командою source ~/.zshrc
або перезапустити термінал). Після цього ServBay зможе правильно знайти Node.js, керований через nvm
.
Якщо ви не користуєтесь nvm
чи homebrew
або хочете використовувати версію Node.js, керовану безпосередньо ServBay, переконайтесь, що потрібна версія Node.js встановлена через розділ “Пакети” у застосунку ServBay.
Помилка "Архітектура не підтримується" при використанні node-sass
та інших npm-пакетів
Користувачі macOS із процесорами Apple Silicon (M1/M2/M3/M4 – архітектура Arm64), можуть зіткнутися з помилками виду Unsupported architecture (arm64)
під час використання старих або нативних npm-пакетів, наприклад, node-sass
. Це трапляється через те, що деякі старі пакети мають двійкові файли чи конфігурацію збірки лише для архітектури x86_64.
bash
ERROR: Module Error (from ./node_modules/sass-loader/dist/cjs.js):
Node Sass does not yet support your current environment: OS X Unsupported architecture (arm64) with Node.js 14.x
For more information on which environments are supported
please see:
https://github.com/sass/node-sass/releases/tag/v4.14.1
1
2
3
4
5
2
3
4
5
Аналіз причин:
Деякі npm-пакети містять компоненти на C++ чи інших мовах, що потребують компіляції для певної архітектури CPU. Старі версії подібних пакетів можуть не мати двійкового варіанту чи підтримки для Arm64 (Apple Silicon).
Вирішення:
Перейти на сучасний, повністю підтримуваний Arm64 аналог (рекомендовано):
Найкращим рішенням буде міграція на сучасний пакет, що має повну підтримку Arm64. Наприклад, замість морально застарілого й майже непідтримуваного
node-sass
використовуйте сучасний пакетsass
. Більшість сучасних фронтенд-проектів і тулчейнів вже перейшли наsass
.bashnpm uninstall node-sass npm install --save-dev sass
1
2Встановити x86_64-версію Node.js у ServBay і запускати під Rosetta 2 (не рекомендується):
У ServBay є можливість встановити Node.js для архітектури
x86_64
. На Mac із Apple Silicon це дозволяє запускати Node.js і нативні x86_64-модулі через вбудований емулятор Rosetta 2. Для цього — у застосунку ServBay на вкладці “Пакети” оберіть встановлення Node.js x86_64.Зверніть увагу: зазвичай не рекомендується використовувати цей варіант як довгострокове рішення, оскільки Rosetta 2 додає додаткове навантаження й може створювати питання сумісності та продуктивності порівняно з нативним Arm64 середовищем. Надавайте перевагу варіанту №1.