Skip to main content

bun-add

Bun add: install a package, add dev dependency, pin exact version, or target a workspace. Use when the user wants to add/install a specific package with bun.

Quellinformationen

Repository
laurigates/claude-plugins
Letzte Quellaktivität
24. September 2026 um 10:45
Erkannte Sprache von SKILL.md
Englisch
Sterne
59
Forks
6

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
description
Bun add: install a package, add dev dependency, pin exact version, or target a workspace. Use when the user wants to add/install a specific package with bun.
args
<package> [--dev] [--exact]
allowed-tools
Bash, Read
argument-hint
package-name [--dev] [--exact]
created
2025-12-20T00:00:00.000Z
modified
2026-09-24T00:00:00.000Z
reviewed
2026-09-24T00:00:00.000Z
name
bun-add
# /bun:add Add a package to dependencies using Bun. ## When to Use This Skill | Scenario | Use this skill | Alternative | |----------|---------------|-------------| | Quickly adding a single package | Yes | N/A | | Adding a dev dependency | Yes | N/A | | Pinning an exact package version | Yes | N/A | | Installing all project dependencies | No - use `bun-package-manager` | `bun install` | | Removing or updating packages | No - use `bun-package-manager` | N/A | | Managing workspace dependencies | No - use `bun-package-manager` | N/A | ## Parameters Parse `$ARGUMENTS`. These are supplied by the **caller**; nothing substitutes them for you. | Token in `$ARGUMENTS` | Binds | Default when absent | |---|---|---| | First non-flag token (required) | `PACKAGE` — name, optionally with a version (`lodash`, `react@18`) | none — ask for it rather than guessing | | `--dev` | add to `devDependencies` | added to `dependencies` | | `--exact` | pin the exact version (no `^` range) | caret range | ## Execution Pick the row matching the flags the caller passed, substitute `PACKAGE`, and run it: | Flags in `$ARGUMENTS` | Command | |---|---| | (none) | `bun add PACKAGE` | | `--dev` | `bun add --dev PACKAGE` | | `--exact` | `bun add --exact PACKAGE` | | `--dev --exact` | `bun add --dev --exact PACKAGE` | ## Examples ```bash # Add runtime dependency bun add express # Add dev dependency bun add --dev typescript vitest # Pin exact version bun add --exact react@18.2.0 # Add to specific workspace bun add lodash --cwd packages/utils # Preview without writing package.json bun add --dry-run zod ``` ## An unpinned `bun add` bypasses the lockfile `bun install --frozen-lockfile` governs only what *that* install resolves. A later `bun add <pkg>` with no version resolves the registry's **`latest` dist-tag** at run time, and the lockfile does not apply to it. The usual place this happens is a Dockerfile that installs with `--production` (to skip dev packages) and then re-adds one CLI from `devDependencies`. `latest` is a registry convention, not a stability guarantee. Publishers can tag a prerelease as `latest`. > Observed 2026-08: `bun add --dev prisma` in a `--production` Docker stage > pulled `8.0.0-rc.12`, because npm's `latest` for `prisma` was a release > candidate. Its CLI had no `generate` command, so the image build failed at a > commit that touched neither Prisma nor the Dockerfile. Another image built > from a plain `--frozen-lockfile` install kept working, which is the sign that > a version was being resolved rather than locked. Unit-test CI stayed green > because it never built the image. When an install line has to name a package that the primary install skipped, read the version from `package.json` instead of hardcoding a second copy. That keeps one source of truth, and Renovate keeps bumping it: ```dockerfile RUN bun add --dev "prisma@$(bun -e 'console.log(JSON.parse(await Bun.file("package.json").text()).devDependencies.prisma)')" ``` If `package.json` holds a range (`^7.9.1`), this resolves the highest version inside that range, which may differ from the locked one. Pin exact versions in `package.json` when that difference matters. ## Post-add 1. Report package version added 2. Show dependency tree impact with `bun why <package>` 3. Suggest running tests to verify compatibility
Auf GitHub ansehen