Ein Befehl, gezeigt für jeden Paketmanager, den die Website anbietet, wobei die
Wahl des Lesers für die ganze Website gemerkt wird.

## Verwendung

Schreibe den Befehl **ohne** den Manager — `add -D pkg`, `run build`,
`dlx create-nuxt`. Die eigene Schreibweise jedes Managers wird eingesetzt.

::preview
:::package-managers{command="add -D @kirchdev/duxt"}
:::

#code
```mdc
::package-managers{command="add -D @kirchdev/duxt"}
::
```
::

## Verben

| Geschrieben | pnpm | npm | yarn | bun |
| :------- | :------- | :------- | :------- | :------- |
| `add` | `add` | `install` | `add` | `add` |
| `install` | `install` | `install` | `install` | `install` |
| `remove` | `remove` | `uninstall` | `remove` | `remove` |
| `run` | `run` | `run` | `run` | `run` |
| `exec` | `exec` | `exec` | `exec` | `exec` |
| `create` | `create` | `create` | `create` | `create` |
| `dlx` | `pnpm dlx` | `npx` | `yarn dlx` | `bunx` |
| `update` | `update` | `update` | `up` | `update` |
| `outdated` | `outdated` | `outdated` | — | `outdated` |
| `audit` | `audit` | `audit` | `npm audit` | `audit` |
| `link` | `link` | `link` | `link` | `link` |
| `why` | `why` | `why` | `why` | `why` |
| `patch` | `patch` | — | `patch` | `patch` |

`yarn` heißt **Berry (≥ 2)**. Berry hat kein `outdated` und keine globale
Installation, npm kein `patch` in irgendeiner Schreibweise — ein Strich oben
bedeutet, dass dieser Manager für diesen Befehl **keinen Tab** bekommt, statt ein
Beinahe-Äquivalent zu zeigen, das etwas anderes tut. Der Build warnt, welche
Seite danach gefragt hat.

Ein `-g` oder `--global` irgendwo im Befehl ist eine globale Installation und
lässt den `yarn`-Tab aus demselben Grund entfallen.

`i`, `rm`, `un`, `uninstall`, `up` und `upgrade` werden akzeptiert und auf die
passende Zeile gefaltet. Ein Verb, das nicht in der Tabelle steht, wird für jeden
Manager wie geschrieben ausgegeben, und der Build sagt es — die Tabelle hängt
immer hinter dem neuesten Subcommand irgendeines Managers zurück, und ein
unbekanntes Wort abzulehnen wäre schlimmer, als es zu zeigen.

## API

### Props

| Prop       | Typ        | Standard               | Anmerkungen                              |
| :--------- | :--------- | :--------------------- | :--------------------------------------- |
| `command`  | `string`   | Pflicht                | Ohne den Manager — `add -D pkg`          |
| `managers` | `DuxtPackageManager[]` | `duxt.packageManagers` | Überschreibt die Liste der Website für einen Block |

## Anmerkungen

Die Wahl ist ein Cookie, kein Browser-Speicher, und das mit Absicht: Der
Speicher wird erst nach der Hydration gelesen, der Block würde also einen
Manager rendern und dann vor den Augen des Lesers auf einen anderen umspringen.
Es ist First-Party, identifiziert niemanden und trägt einen Wert, den der Leser
gewählt hat — siehe
[`usePackageManager()`](/reference/composables/reading/use-package-manager).

Ein Block darf weniger Manager auflisten, als die Wahl des Lesers abdeckt; er
fällt dann auf seinen eigenen ersten Tab zurück, statt nichts zu zeigen.