AgentSkillsCN

bun

使用Bun替代Node.js、npm、pnpm或vite。提供命令映射、Bun专属API以及开发模式。

SKILL.md
--- frontmatter
name: bun
description: Use Bun instead of Node.js, npm, pnpm, or vite. Provides command mappings, Bun-specific APIs, and development patterns.

Bun Runtime

Use Bun as the default JavaScript/TypeScript runtime and package manager.

Command Mappings

Instead ofUse
node file.tsbun file.ts
ts-node file.tsbun file.ts
npm installbun install
npm run scriptbun run script
jest / vitestbun test
webpack / esbuildbun build

Bun automatically loads .env files - don't use dotenv.

Bun-Specific APIs

Prefer these over Node.js equivalents:

APIPurposeDon't use
Bun.serve()HTTP server with WebSocket, HTTPS, routesexpress
bun:sqliteSQLite databasebetter-sqlite3
Bun.redisRedis clientioredis
Bun.sqlPostgres clientpg, postgres.js
Bun.file()File operationsnode:fs readFile/writeFile
Bun.$\cmd``Shell commandsexeca
WebSocketWebSocket client (built-in)ws

Testing

Use bun:test for tests:

ts
import { test, expect } from "bun:test";

test("description", () => {
  expect(1).toBe(1);
});

Run with bun test.

Frontend Development

Use HTML imports with Bun.serve() instead of Vite. Supports React, CSS, Tailwind.

Server:

ts
import index from "./index.html"

Bun.serve({
  routes: {
    "/": index,
    "/api/users/:id": {
      GET: (req) => Response.json({ id: req.params.id }),
    },
  },
  development: { hmr: true, console: true }
})

HTML file:

html
<html>
  <body>
    <script type="module" src="./app.tsx"></script>
  </body>
</html>

Bun's bundler transpiles .tsx, .jsx, .js automatically. CSS is bundled via <link> tags.

Run with bun --hot ./server.ts for HMR.

Documentation

For detailed API docs, see node_modules/bun-types/docs/**.md.