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.

来源信息

仓库
laurigates/claude-plugins
最近来源活动
2026年9月24日 10:45
检测到的 SKILL.md 语言
英语
星标
60
分支
6

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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
在 GitHub 查看