Skip to content

Закрепление версий Node

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

Зачем закреплять версии?

  • Согласованность: Все в команде используют одинаковые версии
  • Воспроизводимость: Среда сборки соответствует среде разработки
  • Надёжность: Нет сюрпризов от неожиданного поведения инструментов
  • Адаптация: Новые участники команды автоматически получают правильную настройку

Как закрепить Node.js

Чтобы закрепить конкретную версию Node.js за вашим проектом:

bash
volta pin node@16.14.2

Эта команда:

  1. Загружает и устанавливает Node.js 16.14.2 (если он ещё не существует)
  2. Обновляет ваш package.json секцией volta
  3. Заставляет проект использовать Node.js 16.14.2 при запуске node в директории проекта

Ваш package.json теперь будет содержать:

json
{
  "volta": {
    "node": "16.14.2"
  }
}

Закрепление пакетных менеджеров

Вы также можете закреплять конкретные версии пакетных менеджеров:

bash
volta pin npm@8.5.0
volta pin yarn@1.22.18
volta pin pnpm@7.0.0

Это обеспечивает использование одинаковой версии пакетного менеджера всеми, предотвращая несогласованности в lock-файлах и другие проблемы с версиями.

После закрепления npm ваш package.json будет выглядеть так:

json
{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  }
}

Использование закреплённых инструментов

После закрепления инструментов не нужны дополнительные команды. Просто перейдите в директорию вашего проекта и запускайте команды как обычно:

bash
# Эти команды будут использовать закреплённые версии вашего проекта
node --version
npm --version

Volta автоматически определяет, когда вы находитесь в директории с закреплёнными версиями, и использует их вместо ваших инструментов по умолчанию.

Обновление закреплённых версий

Чтобы обновить закреплённые версии:

bash
volta pin node@latest
volta pin npm@latest

Или укажите новую версию:

bash
volta pin node@18

Лучшие практики

Когда закреплять

  • Для продуктовых приложений: Всегда закрепляйте Node и ваш пакетный менеджер
  • Для библиотек/пакетов: Закрепляйте Node, если ваш код зависит от конкретных функций Node
  • Для инструментов/утилит: Закрепляйте минимальную версию Node, необходимую для функциональности

Выбор версий

  • Для приложений выбирайте LTS (долгосрочная поддержка) версии Node
  • Для библиотек используйте самую старую версию Node, которую вы хотите поддерживать
  • Регулярно обновляйте версии, чтобы получать исправления безопасности

Интеграция CI/CD

Убедитесь, что ваши CI/CD пайплайны учитывают ваши закреплённые версии:

  • Используйте Volta GitHub Action в GitHub workflows
  • Для других CI систем установите Volta, и она автоматически будет использовать ваши закреплённые версии