bun-runtime
Original:🇺🇸 English
Translated
Bun as runtime, package manager, bundler, and test runner. When to choose Bun vs Node, migration notes, and Vercel support.
23installs
Added on
NPX Install
npx skill4agent add affaan-m/everything-claude-code bun-runtimeTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Bun Runtime
Bun is a fast all-in-one JavaScript runtime and toolkit: runtime, package manager, bundler, and test runner.
When to Use
- Prefer Bun for: new JS/TS projects, scripts where install/run speed matters, Vercel deployments with Bun runtime, and when you want a single toolchain (run + install + test + build).
- Prefer Node for: maximum ecosystem compatibility, legacy tooling that assumes Node, or when a dependency has known Bun issues.
Use when: adopting Bun, migrating from Node, writing or debugging Bun scripts/tests, or configuring Bun on Vercel or other platforms.
How It Works
- Runtime: Drop-in Node-compatible runtime (built on JavaScriptCore, implemented in Zig).
- Package manager: is significantly faster than npm/yarn. Lockfile is
bun install(text) by default in current Bun; older versions usedbun.lock(binary).bun.lockb - Bundler: Built-in bundler and transpiler for apps and libraries.
- Test runner: Built-in with Jest-like API.
bun test
Migration from Node: Replace with or . Run in place of ; most packages work. Use for npm scripts; for npx-style one-off runs. Node built-ins are supported; prefer Bun APIs where they exist for better performance.
node script.jsbun run script.jsbun script.jsbun installnpm installbun runbun xVercel: Set runtime to Bun in project settings. Build: or . Install: for reproducible deploys.
bun run buildbun build ./src/index.ts --outdir=distbun install --frozen-lockfileExamples
Run and install
bash
# Install dependencies (creates/updates bun.lock or bun.lockb)
bun install
# Run a script or file
bun run dev
bun run src/index.ts
bun src/index.tsScripts and env
bash
bun run --env-file=.env dev
FOO=bar bun run script.tsTesting
bash
bun test
bun test --watchtypescript
// test/example.test.ts
import { expect, test } from "bun:test";
test("add", () => {
expect(1 + 2).toBe(3);
});Runtime API
typescript
const file = Bun.file("package.json");
const json = await file.json();
Bun.serve({
port: 3000,
fetch(req) {
return new Response("Hello");
},
});Best Practices
- Commit the lockfile (or
bun.lock) for reproducible installs.bun.lockb - Prefer for scripts. For TypeScript, Bun runs
bun runnatively..ts - Keep dependencies up to date; Bun and the ecosystem evolve quickly.