Skip to content

Рабочие пространства

Подробная информация о том, как использовать 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
json
{
  "volta": {
    "node": "12.16.1",
    "yarn": "1.22.4"
  }
}
  • packages/cli/package.json
json
{
  "volta": {
    "extends": "../../package.json"
  }
}
  • packages/utils/package.json
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".