Устранение неполадок Node.js
Данный документ предназначен для помощи разработчикам, использующим локальную среду разработки ServBay, в решении наиболее распространенных проблем с Node.js-пакетами.
Команды Node.js/npm/pnpm/yarn: версия не найдена или не найдена команда
Если при использовании в ServBay команд Node.js, npm, pnpm или yarn вы видите ошибку наподобие следующей, это означает, что система не может найти исполняемый файл 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 не может корректно их обнаружить.
Совет
После установки ServBay система настраивает скриптовые алиасы, чтобы в приоритете использовать Node.js, поставляемый с самим ServBay. Если нужная версия в ServBay не найдена, система по очереди попытается использовать версию из nvm
, а затем из установленного через homebrew
. Если ни в одном из источников найти Node.js не удается, возникнет ошибка, как показано выше.
Причины:
- Нужная версия Node.js не установлена внутри приложения ServBay.
- В системе есть
nvm
илиhomebrew
, и вы ждёте работы с Node.js из этих инструментов, но из-за неправильных настроек среды (особенно переменных окруженияPATH
илиNVM_BIN
) ServBay не может найти внешний Node.js.
Как решить:
Если вы используете nvm
и уже установили нужную версию Node.js, но ошибка сохраняется, вероятно, в вашем конфигурационном файле шелла некорректно настроена переменная окружения NVM_BIN
. При корректной установке nvm
эта переменная прописывается автоматически и указывает на путь до исполняемых файлов Node.js, управляемых nvm
— что критически важно для его работы.
Проверьте настройки своих конфигурационных файлов (например, ~/.zshrc
, ~/.bash_profile
и др.), исправьте или добавьте необходимые параметры для nvm
, убедитесь, что переменная NVM_BIN
экспортируется, и перезагрузите настройки (используйте команду source ~/.zshrc
или перезапустите терминал). После этого механизм поиска в ServBay должен корректно находить Node.js, управляемый через nvm
.
Если вы не используете nvm
или homebrew
, либо хотите управлять версиями Node.js исключительно через ServBay, убедитесь, что нужная версия установлена во вкладке “Пакеты” (Packages) вашего приложения ServBay.
Ошибка "Архитектура не поддерживается" при использовании npm-пакетов типа node-sass
Пользователи 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
. Чаще всего современные frontend-проекты и инструментарий уже перешли наsass
.bashnpm uninstall node-sass npm install --save-dev sass
1
2Установите Node.js для архитектуры x86_64 в ServBay и используйте его через Rosetta 2 (не рекомендуется):
В ServBay вы можете установить Node.js, собранный для x86_64. На Mac с Apple Silicon это позволит запускать Node.js и все его зависимости, включая нативные модули под x86_64, через слой эмуляции Rosetta 2, встроенный в macOS. Для этого просто выберите установку нужной версии Node.js с архитектурой x86_64 во вкладке “Пакеты” в приложении ServBay.
Обратите внимание: Используйте этот подход только в исключительных случаях и не в качестве постоянного решения. Применение Rosetta 2 приводит к снижению производительности и может вызвать проблемы с совместимостью в сравнении с нативной средой Arm64. Отдавайте приоритет первому способу.