---
read_when:
    - Ви налагоджуєте встановлення пакетів Plugin
    - Ви змінюєте поведінку запуску Plugin, діагностики або встановлення через менеджер пакетів
    - Ви супроводжуєте пакетовані інсталяції OpenClaw або маніфести вбудованих Plugin
sidebarTitle: Dependencies
summary: Як OpenClaw встановлює пакети Plugin і розв’язує залежності Plugin
title: Вирішення залежностей Plugin
x-i18n:
    generated_at: "2026-05-02T09:29:42Z"
    model: gpt-5.5
    provider: openai
    source_hash: c9476529ad1d44ed1b17caca628c58acfbb1d8c73393f58fa7d3d76944a71aea
    source_path: plugins/dependency-resolution.md
    workflow: 16
---

# Розв’язання залежностей Plugin

OpenClaw виконує роботу із залежностями Plugin під час установлення/оновлення. Завантаження під час виконання
не запускає менеджери пакетів, не ремонтує дерева залежностей і не змінює каталог
пакета OpenClaw.

## Розподіл відповідальності

Пакети Plugin відповідають за власний граф залежностей:

- залежності часу виконання містяться в `dependencies` або
  `optionalDependencies` пакета Plugin
- імпорти SDK/core є peer-імпортами або імпортами, наданими OpenClaw
- локальні Plugin для розробки мають власні вже встановлені залежності
- npm- і git-Plugin установлюються в корені пакетів, якими керує OpenClaw

OpenClaw відповідає лише за життєвий цикл Plugin:

- виявити джерело Plugin
- установити або оновити пакет, коли це явно запитано
- записати метадані встановлення
- завантажити точку входу Plugin
- завершити з дієвою помилкою, коли залежностей бракує

## Корені встановлення

OpenClaw використовує стабільні корені для кожного джерела:

- npm-пакети встановлюються в `~/.openclaw/npm`
- git-пакети клонуються в `~/.openclaw/git`
- локальні/path/archive-встановлення копіюються або використовуються за посиланням без ремонту залежностей

npm-встановлення виконуються в корені npm за допомогою:

```bash
npm install --prefix ~/.openclaw/npm <spec> --omit=dev --ignore-scripts --no-audit --no-fund
```

npm може піднімати транзитивні залежності в `~/.openclaw/npm/node_modules` поруч
із пакетом Plugin. OpenClaw сканує керований корінь npm, перш ніж довіряти
встановленню, і використовує npm для видалення керованих npm пакетів під час деінсталяції, тож підняті
залежності часу виконання залишаються в межах керованого очищення.

git-встановлення клонують або оновлюють репозиторій, а потім виконують:

```bash
npm install --omit=dev --ignore-scripts --no-audit --no-fund
```

Після цього встановлений Plugin завантажується з каталогу цього пакета, тому розв’язання
package-local і батьківських `node_modules` працює так само, як для звичайного
Node-пакета.

## Локальні Plugin

Локальні Plugin розглядаються як каталоги, контрольовані розробником. OpenClaw не
запускає для них `npm install`, `pnpm install` або ремонт залежностей. Якщо локальний
Plugin має залежності, установіть їх у цьому Plugin перед його завантаженням.

Сторонні локальні TypeScript-Plugin можуть використовувати аварійний шлях Jiti. Пакетовані
JavaScript-Plugin і вбудовані внутрішні Plugin завантажуються через нативний
import/require замість Jiti.

## Запуск і перезавантаження

Запуск Gateway і перезавантаження конфігурації ніколи не встановлюють залежності Plugin. Вони читають
записи встановлення Plugin, обчислюють точку входу й завантажують її.

Якщо залежності бракує під час виконання, Plugin не завантажується, а помилка
має спрямувати оператора до явного виправлення:

```bash
openclaw plugins update <id>
openclaw plugins install <source>
openclaw doctor --fix
```

`doctor --fix` може очистити застарілий стан залежностей, згенерований OpenClaw, і встановити
налаштовані завантажувані Plugin, яких бракує в локальних записах встановлення.
Він не ремонтує залежності для вже встановленого локального Plugin.

## Вбудовані Plugin

Легковагові та критично важливі для ядра вбудовані Plugin постачаються як частина OpenClaw.
Вони або не повинні мати важкого дерева залежностей часу виконання, або мають бути винесені
в завантажуваний пакет на ClawHub/npm.

Поточний згенерований список Plugin, які постачаються в основному пакеті, встановлюються
зовнішньо або залишаються лише у вихідному коді, див. в [інвентарі Plugin](/uk/plugins/plugin-inventory).

Маніфести вбудованих Plugin не повинні запитувати стадіювання залежностей. Велика або необов’язкова
функціональність Plugin має пакуватися як звичайний Plugin і встановлюватися через
той самий шлях npm/git/ClawHub, що й сторонні Plugin.

У checkout-ах вихідного коду OpenClaw розглядає репозиторій як pnpm-монорепозиторій. Після
`pnpm install` вбудовані Plugin завантажуються з `extensions/<id>`, тож package-local
залежності workspace доступні, а зміни підхоплюються напряму. Розробка в checkout-і
вихідного коду підтримується лише з pnpm; звичайний `npm install` у корені репозиторію
не є підтримуваним способом підготувати залежності вбудованих Plugin.

| Форма встановлення               | Розташування вбудованого Plugin       | Власник залежностей                                                  |
| -------------------------------- | ------------------------------------- | -------------------------------------------------------------------- |
| `npm install -g openclaw`        | Побудоване дерево часу виконання всередині пакета | Пакет OpenClaw і явні потоки встановлення/оновлення/doctor для Plugin |
| Git checkout plus `pnpm install` | Workspace-пакети `extensions/<id>`    | pnpm-workspace, включно з власними залежностями кожного пакета Plugin |
| `openclaw plugins install ...`   | Керований корінь Plugin npm/git/ClawHub | Потік встановлення/оновлення Plugin                                  |

## Очищення застарілого стану

Старіші версії OpenClaw генерували корені залежностей вбудованих Plugin під час запуску або
під час ремонту doctor. Поточне очищення doctor видаляє ці застарілі каталоги й
символьні посилання, коли використовується `--fix`, зокрема старі корені `plugin-runtime-deps`,
маніфести `.openclaw-runtime-deps*`, згенеровані `node_modules` Plugin, каталоги
стадії встановлення та package-local pnpm-сховища.

Ці шляхи є лише застарілими залишками. Нові встановлення не повинні їх створювати.
