Що таке pnpm workspaces?
pnpm workspaces - це механізм, який дозволяє об'єднувати кілька пов'язаних проєктів (пакетів) в один спільний репозиторій (монорепозиторій) і керувати їхніми залежностями централізовано. Це зручно, коли в одному репо зберігається одразу кілька пакетів, бібліотек або сервісів, які використовують спільні залежності або залежать один від одного.
Завдання, які вирішують workspaces
- Єдине керування залежностями Спільні пакети встановлюються один раз, а не в кожному проєкті.
- Локальна прив'язка пакетів один до одного Можна залежати від іншого пакета в тому самому репозиторії без публікації його в npm - pnpm створює локальне посилання автоматично.
- Оптимізація встановлення Встановлення всіх залежностей для всіх пакетів відбувається однією командою, швидко і без дублювання.
- Зручність для великих проєктів і монорепо Підходить для фронтенду, бекенду, бібліотек і 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
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.