Рабочие пространства
Подробная информация о том, как использовать Volta в среде рабочих пространств, где у вас есть несколько проектов в одном репозитории, которые все хотят разделить настройки Volta.
TIP
Эта функция была добавлена в Volta 0.8.2 и не будет работать в более ранних версиях.
Расширенная конфигурация
В разделе "volta"
вашего package.json
вы можете указать запись с ключом "extends"
. Значение этой записи должно быть путём к другому JSON файлу, который также имеет раздел "volta"
. Относительные пути будут разрешены относительно файла, который их устанавливает. Любые настройки Volta (например, версии "node"
или "yarn"
) будут объединены с настройками из файла, на который указывает "extends"
, с приоритетом текущего файла. Таким образом, если вы хотите использовать единую версию Node для всех проектов, вы можете установить эти версии в корне, а затем каждому проекту нужно только "extends": "../path/to/root/package.json"
.
Пример
Учитывая следующую структуру папок и содержимое package.json
:
.
├── package.json
└── packages
├── cli
│ └── package.json
└── utils
└── package.json
package.json
{
"volta": {
"node": "12.16.1",
"yarn": "1.22.4"
}
}
packages/cli/package.json
{
"volta": {
"extends": "../../package.json"
}
}
packages/utils/package.json
{
"volta": {
"extends": "../../package.json"
}
}
Запуск node
в любом месте рабочего пространства заставит вас использовать Node 12.16.1
. Если вы обновите эту версию в корневом package.json
, она автоматически будет использоваться во всех проектах без необходимости дублировать настройки в каждом подпроекте.
Закрепление инструментов
Когда вы запускаете volta pin
для выбора версий инструментов из рабочего пространства, Volta всегда добавит эти настройки в ближайший найденный package.json
. Поэтому в приведённом выше примере, если вы запустите volta pin node@14
в подпроекте packages/utils
, новая версия Node будет записана в packages/utils/package.json
и будет применяться только к подпроекту utils
, а не к любым другим проектам. Это позволяет легко настраивать версии инструментов для каждого проекта.
Если вы хотите использовать volta pin
для внесения изменений в корневую конфигурацию, сначала cd
в корень рабочего пространства, а затем запустите volta pin
оттуда.
Хуки
Если ваш проект использует проектные хуки, вы можете поместить их в директорию .volta
подпроекта или в директорию .volta
корня. Volta будет искать хуки в каждом местоположении, на которое указывает ключ "extends"
, чтобы настройки могли быть настроены на любом нужном уровне.
Локальные двоичные файлы проекта
В дополнение к поиску хуков на каждом уровне, Volta также будет искать на каждом уровне для обнаружения локальных зависимостей проекта для использования при запуске сторонних инструментов. Она попытается найти их в node_modules/.bin
относительно каждого файла, на который ссылается "extends"
.