Конфигурация
Volta использует несколько файлов конфигурации для управления вашим JavaScript инструментарием. Эта справка описывает доступные параметры конфигурации и их форматы.
Конфигурация проекта
Конфигурация, специфичная для проекта, хранится под ключом volta
в файле package.json
проекта.
Формат
{
"volta": {
"node": "16.14.2",
"npm": "8.5.0",
"yarn": "1.22.19",
"extends": "../shared-volta-config.json"
}
}
Свойства
Свойство | Тип | Описание |
---|---|---|
node | String | Версия Node.js для использования в этом проекте |
npm | String | Версия npm для использования в этом проекте |
yarn | String | Версия Yarn для использования в этом проекте |
pnpm | String | Версия pnpm для использования в этом проекте |
extends | String | Путь к файлу общей конфигурации Volta |
Форматы версий
Строки версий в конфигурации volta
могут использовать следующие форматы:
- Точная версия:
16.14.2
- Только основная версия:
16
- Основная и младшая версии:
16.14
- Диапазон версий (npm semver):
^16.14.0
- Теги:
latest
,lts
Общая конфигурация проекта
Вы можете создать общую конфигурацию Volta, которую могут расширять несколько проектов. Это полезно для организаций, которые хотят стандартизировать версии инструментов между проектами.
Формат
{
"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 проверяет источники в следующем порядке:
- Аргументы командной строки (например,
volta run --node 14
) - Конфигурация проекта в ближайшем
package.json
с секциейvolta
- Версии инструментов пользователя по умолчанию (установленные с помощью
volta install
) - Поставляемые версии (например, npm, поставляемый с Node.js)
Примеры
Типичная конфигурация проекта
{
"name": "my-project",
"version": "1.0.0",
"volta": {
"node": "16.14.2",
"npm": "8.5.0"
},
"dependencies": {
// ...
}
}
Расширенная конфигурация
// 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
применяется ко всем пакетам рабочего пространства:
// Корневой 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 здесь не нужна
}