Skip to main content

Що таке pnpm workspaces?

pnpm workspaces - це механізм, який дозволяє об'єднувати кілька пов'язаних проєктів (пакетів) в один спільний репозиторій (монорепозиторій) і керувати їхніми залежностями централізовано. Це зручно, коли в одному репо зберігається одразу кілька пакетів, бібліотек або сервісів, які використовують спільні залежності або залежать один від одного.


Завдання, які вирішують workspaces

  1. Єдине керування залежностями Спільні пакети встановлюються один раз, а не в кожному проєкті.
  2. Локальна прив'язка пакетів один до одного Можна залежати від іншого пакета в тому самому репозиторії без публікації його в npm - pnpm створює локальне посилання автоматично.
  3. Оптимізація встановлення Встановлення всіх залежностей для всіх пакетів відбувається однією командою, швидко і без дублювання.
  4. Зручність для великих проєктів і монорепо Підходить для фронтенду, бекенду, бібліотек і CLI всередині одного репо.

Приклад структури workspace

javascript
my-monorepo/ pnpm-workspace.yaml packages/ app/ package.json ui/ package.json

Файл pnpm-workspace.yaml:

yaml
packages: - "packages/*"

Як використовується

ДіяКоманда
Встановити залежності для всіх пакетівpnpm install
Запустити скрипт в одному пакетіpnpm --filter app dev
Додати залежність у конкретний пакетpnpm add react --filter app

Підсумок

pnpm workspaces - це інструмент для роботи з монорепозиторіями, який дозволяє ефективно керувати кількома пакетами в одному репо, ділити залежності, прискорювати встановлення й легко пов'язувати локальні пакети між собою.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.