Skip to content

Конфигурация

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

Конфигурация проекта

Конфигурация, специфичная для проекта, хранится под ключом volta в файле package.json проекта.

Формат

json
{
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0",
    "yarn": "1.22.19",
    "extends": "../shared-volta-config.json"
  }
}

Свойства

СвойствоТипОписание
nodeStringВерсия Node.js для использования в этом проекте
npmStringВерсия npm для использования в этом проекте
yarnStringВерсия Yarn для использования в этом проекте
pnpmStringВерсия pnpm для использования в этом проекте
extendsStringПуть к файлу общей конфигурации Volta

Форматы версий

Строки версий в конфигурации volta могут использовать следующие форматы:

  • Точная версия: 16.14.2
  • Только основная версия: 16
  • Основная и младшая версии: 16.14
  • Диапазон версий (npm semver): ^16.14.0
  • Теги: latest, lts

Общая конфигурация проекта

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

Формат

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

Формат такой же, как секция volta в package.json, но на корневом уровне JSON файла.

Пользовательская конфигурация

Пользовательская конфигурация Volta хранится в основной директории Volta:

  • Unix: ~/.volta/
  • Windows: %LOCALAPPDATA%\Volta\

Хранение инструментов

Установленные инструменты хранятся в структурированных директориях:

  • Node.js: ~/.volta/tools/image/node/
  • Пакетные менеджеры: ~/.volta/tools/image/yarn/, ~/.volta/tools/image/npm/
  • Пакеты: ~/.volta/tools/user/packages/

Директория хуков

Пользовательские хуки хранятся в ~/.volta/hooks/. Для более подробной информации смотрите раздел Продвинутые функции.

Переменные окружения

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

Приоритет конфигурации

При разрешении, какую версию инструмента использовать, Volta проверяет источники в следующем порядке:

  1. Аргументы командной строки (например, volta run --node 14)
  2. Конфигурация проекта в ближайшем package.json с секцией volta
  3. Версии инструментов пользователя по умолчанию (установленные с помощью volta install)
  4. Поставляемые версии (например, npm, поставляемый с Node.js)

Примеры

Типичная конфигурация проекта

json
{
  "name": "my-project",
  "version": "1.0.0",
  "volta": {
    "node": "16.14.2",
    "npm": "8.5.0"
  },
  "dependencies": {
    // ...
  }
}

Расширенная конфигурация

json
// shared-config.json
{
  "node": "16.14.2",
  "yarn": "1.22.19"
}

// package.json
{
  "name": "my-project",
  "version": "1.0.0",
  "volta": {
    "extends": "./shared-config.json",
    "npm": "8.5.0"  // Перезаписывает любую версию npm из расширенной конфигурации
  }
}

Конфигурация рабочего пространства

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

json
// Корневой package.json
{
  "name": "workspace-root",
  "volta": {
    "node": "16.14.2",
    "yarn": "1.22.19"
  },
  "workspaces": [
    "packages/*"
  ]
}

// packages/app/package.json - будет использовать Node.js 16.14.2 и Yarn 1.22.19
{
  "name": "app",
  "version": "1.0.0",
  // Секция volta здесь не нужна
}