Skip to content

Понимание Volta

Как работает Volta

Volta управляет вашими JavaScript инструментами командной строки, создавая прокладки, которые направляют к правильной версии в зависимости от вашей текущей директории. Это позволяет разным проектам использовать разные версии одного и того же инструмента без какой-либо дополнительной конфигурации.

Система прокладок

Когда вы устанавливаете Volta, она добавляет набор небольших прокладок в ваш PATH:

  • Одну прокладку для node
  • Одну прокладку для каждого пакетного менеджера (npm, yarn, pnpm, и т.д.)
  • Одну прокладку для каждого глобального пакета, который вы устанавливаете

Эти прокладки - крошечные исполняемые файлы, которые определяют актуальную версию инструмента для запуска путём:

  1. Проверки, находитесь ли вы в проекте с закреплёнными версиями инструментов
  2. Если версии, специфичные для проекта, не найдены, используется ваша версия по умолчанию

Версии, специфичные для проекта

Volta сохраняет требования к инструментам проекта в секции volta вашего файла package.json:

json
{
  "volta": {
    "node": "16.15.1",
    "npm": "8.11.0"
  }
}

Когда вы выполняете команды в директории с такой конфигурацией, Volta автоматически обеспечивает использование именно этих версий.

Версии по умолчанию

Для мест вне проектов без закреплённых версий Volta использует ваши инструменты по умолчанию. Вы можете установить их, используя:

bash
volta install node@16.15.1
volta install npm@8.11.0

Почему Volta?

Согласованная среда

Volta обеспечивает, чтобы все, работающие над проектом, использовали точно один и тот же инструментарий, устраняя проблемы "работает на моей машине".

Нулевые накладные расходы

В отличие от других менеджеров версий, Volta не требует дополнительных команд для переключения версий при смене проектов. Это происходит автоматически при навигации по файловой системе.

Быстрая производительность

Созданная на Rust, Volta спроектирована для скорости. Её архитектура прокладок означает минимальные накладные расходы при запуске JavaScript инструментов.

Бесшовная интеграция

Volta работает с вашим существующим рабочим процессом JavaScript разработки, не требуя изменений в ваших привычках или процессах.

Обычные рабочие процессы

Начало нового проекта

bash
# Создать директорию и настроить пакет
mkdir my-project && cd my-project
npm init -y

# Закрепить версии Node.js и npm
volta pin node@16
volta pin npm@8

# Установить зависимости
npm install express

Участие в существующем проекте

bash
# Клонировать репозиторий
git clone https://github.com/example/project.git
cd project

# Если в проекте есть конфигурация volta в package.json,
# автоматически будут использоваться правильные инструменты

# Если нет, вы можете добавить их
volta pin node@14

Установка глобальных инструментов

bash
# Установить глобальный пакет
volta install typescript

# Теперь вы можете использовать его откуда угодно
tsc --version