Об этом проекте

`n` — это лёгкий менеджер версий Node.js на основе BASH, созданный для простоты. Он позволяет пользователям загружать, устанавливать и переключаться между несколькими версиями Node.js интерактивно или через аргументы командной строки, без необходимости в субоболочках, изменении профиля или сложных API. Поддерживаемые платформы `n` работает на macOS, Linux (включая подсистему Windows для Linux) и других Unix-подобных системах. Он не работает в нативных оболочках Windows (например, PowerShell), Git for Windows BASH или с DLL Cygwin. Установка Если Node.js уже установлен, проще всего установить `n` через npm: npm install -g n По умолчанию `n` устанавливается в `/usr/local`, что может потребовать соответствующих прав. Варианты включают изменение владельца каталога, использование пользовательского расположения `N_PREFIX` или запуск с `sudo`. Для начальной установки без npm можно загрузить и запустить `n` напрямую: curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s install lts Сторонние установщики доступны для macOS через Homebrew (`brew install n`) и MacPorts (`port install n`), а для Linux/macOS — через `n-install`. Ключевые возможности - **Интерактивный выбор**: Запустите `n` без аргументов, чтобы увидеть загруженные версии и выбрать одну с помощью стрелок. - **Указание версии**: Поддерживаются полные или частичные номера версий (например, `4.9.1`, `8`, `v6.1`), ярлыки вроде `lts`, `latest`, `current` и кодовые имена (`argon`, `boron`, `carbon`). - **Автоматическое определение версии**: Считывает `.n-node-version`, `.node-version`, `.nvmrc` или поле `engines` в `package.json`. - **Управление кэшем**: Загруженные файлы кэшируются для офлайн-переустановки; `n ls` показывает кэшированные версии, `n rm` удаляет конкретные версии, `n prune` очищает все, кроме активной. - **Прямое выполнение**: `n run [version] [script]` запускает сценарий с конкретной версией Node.js; `n exec [version] [command]` выполняет команду с `PATH` этой версии; `n which [version]` показывает путь к бинарному файлу. - **Сохранение npm**: Используйте `--preserve` или `N_PRESERVE_NPM`/`N_PRESERVE_COREPACK`, чтобы сохранить текущие версии npm/corepack. - **Пользовательские зеркала**: Задайте `N_NODE_MIRROR` или `N_NODE_DOWNLOAD_MIRROR` для альтернативных источников загрузки (например, зеркало в Китае или неофициальные сборки). - **Переопределение архитектуры**: Используйте `--arch` или `N_ARCH` для выбора конкретных бинарных файлов (например, `x64-musl` для Alpine). - **Переменные окружения**: `N_PREFIX` изменяет место установки; `N_CACHE_PREFIX` изменяет расположение кэша; `NO_COLOR`/`CLICOLOR=0` управляют ANSI-цветами. - **Диагностика**: `n doctor` помогает устранять неполадки. Примеры использования n 10.16.0 # Установить конкретную версию n lts # Установить последнюю LTS n ls-remote lts # Список подходящих удалённых версий n ls # Список кэшированных версий n rm 0.9.4 # Удалить кэшированную версию n uninstall # Удалить активную Node.js (сохранить кэш) n run 8.11.3 --debug some.js n exec 10 my-script --fast test n --offline 12 # Использовать кэшированную версию без интернета Как это работает `n` загружает архивы Node.js в папку кэша (по умолчанию: `N_PREFIX/n/versions`) и устанавливает активную версию в подкаталоги `bin`, `include`, `lib` и `share`. Он не изменяет глобальные пакеты npm, если не используется `--preserve`. Инструмент разработан как минималистичный и прозрачный, что делает его популярным выбором для разработчиков, предпочитающих простой менеджер версий.