SuperAPI AI Directory

bun-development

Coding & development

View repository

Updated 10-16 14:59

About this skill

Bun Development

When to Use This Skill

Scenario Use this skill Alternative
Running scripts with Bun runtime Yes nodejs-development for Node.js-specific runtime
Running Bun tests with bun test Yes bun-test for quick invocable test runs
Bundling/building with Bun Yes bun-build for quick invocable builds
Initializing a new Bun project Yes nodejs-development for Vite/Vue scaffolding
Compiling to standalone executable Yes N/A
Installing or managing dependencies No - use bun-package-manager bun-add for quick package additions
Publishing packages to npm No - use bun-publishing N/A
Debugging TypeScript/JS code No - use typescript-debugging N/A

Core Expertise

Bun is an all-in-one JavaScript runtime:

  • ~6ms startup vs npm's ~170ms
  • Native TypeScript execution
  • Built-in test runner
  • Fast bundler with compile-to-exe

Running Scripts

Basic Execution

# Run package.json script
bun run <script>

# Run file directly
bun <file.ts>

# Silent mode (no script echo)
bun run --silent <script>

Watch Mode

# Auto-restart on changes
bun --watch run dev

# Hot reload (preserve state)
bun --hot run dev

Workspace Scripts

# Run in matching workspaces
bun run --filter 'package-*' build

# Run in all workspaces
bun run --workspaces test

# Limit output per workspace
bun run --filter '*' --elide-lines=5 build

Execute Packages (bunx)

# Execute package binary (like npx)
bunx <package>

# Specific version
bunx typescript@5.0 --help

# When binary differs from package
bunx -p @angular/cli ng new app

# Force Bun runtime
bunx --bun vite dev

Testing

Basic Test Execution

# Run all tests
bun test

# Run specific file
bun test tests/auth.test.ts

# Filter by name
bun test -t "login"

Compact Output (Agentic)

# Minimal dots reporter
bun test --dots

# Fail fast
bun test --bail
bun test --bail=3  # Stop after 3 failures

# Combine for quick feedback
bun test --dots --bail=1

CI/CD Output

# JUnit XML (most CI systems)
bun test --reporter=junit --reporter-outfile=junit.xml

# GitHub Actions (auto-detected in CI)
# Produces annotations automatically
bun test

Coverage

# Enable coverage
bun test --coverage

# LCOV format for tools
bun test --coverage --coverage-reporter=lcov

Test Configuration

# Custom timeout
bun test --timeout=10000

# Run concurrently
bun test --concurrent

# Limit concurrency
bun test --max-concurrency=5

# Detect flaky tests
bun test --rerun-each=3

Building

Bundle JavaScript/TypeScript

# Basic bundle
bun build ./src/index.ts --outdir=dist

# Production build
bun build ./src/index.ts --outdir=dist --minify --sourcemap=external

# Watch mode
bun build ./src/index.ts --outdir=dist --watch

Build Targets

# Browser (default)
bun build ./src/index.ts --target=browser

# Bun runtime
bun build ./src/index.ts --target=bun

# Node.js
bun build ./src/index.ts --target=node

Compile to Executable

# Standalone binary
bun build --compile ./app.ts --outfile myapp

# Minified standalone
bun build --compile --minify ./app.ts --outfile myapp

# Cross-compile
bun build --compile --target=bun-linux-x64 ./app.ts

Code Splitting

# Enable splitting
bun build ./src/index.ts --outdir=dist --splitting

Project Initialization

Quick Init

# Interactive blank project
bun init

# With template
bun init --react my-app
bun init --react=tailwind my-app

Create from Template

# From npm/GitHub
bun create vite my-project
bun create hono@latest my-api

# From GitHub repo
bun create <user>/<repo> destination

Agentic Optimizations

Context Command
Quick test bun test --dots --bail=1
CI test bun test --reporter=junit --reporter-outfile=junit.xml
Coverage bun test --coverage --coverage-reporter=lcov
Silent run bun run --silent <script>
Watch dev bun --watch run dev
Prod build bun build --minify --sourcemap=external --outdir=dist
Compile bun build --compile --minify ./app.ts
Memory save bun run --smol <script>

Quick Reference

bun run

Flag Description
--watch Auto-restart on changes
--hot Hot reload
--silent Suppress script echo
--filter Run in matching workspaces
--smol Reduce memory usage

bun test

Flag Description
--dots Compact dot reporter
--bail / --bail=N Stop after N failures
--coverage Enable coverage
--timeout=<ms> Per-test timeout
--reporter=junit JUnit XML output
-t <pattern> Filter by test name
--concurrent Parallel async tests

bun build

Flag Description
--outdir Output directory
--outfile Output file (single/compile)
--minify Minify output
--sourcemap none/inline/external
--target browser/bun/node
--compile Standalone executable
--splitting Enable code splitting
--watch Watch mode

Environment Variables

Variable Description
BUN_OPTIONS Global CLI flags
NODE_ENV Environment (production/development)