Закрепление версий Node
Одна из самых мощных функций Volta - это возможность закреплять конкретные версии инструментов за вашим проектом, обеспечивая использование точно одинакового инструментария всеми, кто работает над проектом.
Зачем закреплять версии?
- Согласованность: Все в команде используют одинаковые версии
- Воспроизводимость: Среда сборки соответствует среде разработки
- Надёжность: Нет сюрпризов от неожиданного поведения инструментов
- Адаптация: Новые участники команды автоматически получают правильную настройку
Как закрепить Node.js
Чтобы закрепить конкретную версию Node.js за вашим проектом:
volta pin node@16.14.2
Эта команда:
- Загружает и устанавливает Node.js 16.14.2 (если он ещё не существует)
- Обновляет ваш
package.json
секциейvolta
- Заставляет проект использовать Node.js 16.14.2 при запуске
node
в директории проекта
Ваш package.json
теперь будет содержать:
{
"volta": {
"node": "16.14.2"
}
}
Закрепление пакетных менеджеров
Вы также можете закреплять конкретные версии пакетных менеджеров:
volta pin npm@8.5.0
volta pin yarn@1.22.18
volta pin pnpm@7.0.0
Это обеспечивает использование одинаковой версии пакетного менеджера всеми, предотвращая несогласованности в lock-файлах и другие проблемы с версиями.
После закрепления npm ваш package.json
будет выглядеть так:
{
"volta": {
"node": "16.14.2",
"npm": "8.5.0"
}
}
Использование закреплённых инструментов
После закрепления инструментов не нужны дополнительные команды. Просто перейдите в директорию вашего проекта и запускайте команды как обычно:
# Эти команды будут использовать закреплённые версии вашего проекта
node --version
npm --version
Volta автоматически определяет, когда вы находитесь в директории с закреплёнными версиями, и использует их вместо ваших инструментов по умолчанию.
Обновление закреплённых версий
Чтобы обновить закреплённые версии:
volta pin node@latest
volta pin npm@latest
Или укажите новую версию:
volta pin node@18
Лучшие практики
Когда закреплять
- Для продуктовых приложений: Всегда закрепляйте Node и ваш пакетный менеджер
- Для библиотек/пакетов: Закрепляйте Node, если ваш код зависит от конкретных функций Node
- Для инструментов/утилит: Закрепляйте минимальную версию Node, необходимую для функциональности
Выбор версий
- Для приложений выбирайте LTS (долгосрочная поддержка) версии Node
- Для библиотек используйте самую старую версию Node, которую вы хотите поддерживать
- Регулярно обновляйте версии, чтобы получать исправления безопасности
Интеграция CI/CD
Убедитесь, что ваши CI/CD пайплайны учитывают ваши закреплённые версии:
- Используйте Volta GitHub Action в GitHub workflows
- Для других CI систем установите Volta, и она автоматически будет использовать ваши закреплённые версии