bun について
JavaScript と TypeScript のプロジェクトで、ランタイム兼パッケージマネージャーとして Bun を使うためのスキルです。Node.js やパッケージ管理、テスト、ビルドの一般的な操作を Bun に置き換え、専用 API も示します。
主な機能
- 01一般的なコマンドを Bun 用に置換
- 02Bun 専用ランタイム API の利用
- 03bun:test によるテスト実行
- 04Bun によるフロントエンド配信
- 05.env ファイルの自動読み込み
活用シーン
- 01Bun での TypeScript ファイル実行
- 02依存関係のインストールとスクリプト実行
- 03bun:test を使ったプロジェクトのテスト
- 04Bun.serve() によるフロントエンド構築
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ brianlovin/ agent-config --skill bunインストール後、Claude Code で/bunを入力して読み込まれたか確認します。
詳細
Bun ランタイム
デフォルトの JavaScript/TypeScript ランタイムおよびパッケージマネージャーとして Bun を使用します。
コマンドの対応表
| 次の代わりに | 使用 |
|---|---|
node file.ts | bun file.ts |
ts-node file.ts | bun file.ts |
npm install | bun install |
npm run script | bun run script |
jest / vitest | bun test |
webpack / esbuild | bun build |
Bun は .env ファイルを自動的に読み込みます。dotenv は使用しないでください。
Bun 固有の API
Node.js の同等機能より、以下を優先して使用してください。
| API | 用途 | 使用しないもの |
|---|---|---|
Bun.serve() | WebSocket、HTTPS、ルートに対応した HTTP サーバー | express |
bun:sqlite | SQLite データベース | better-sqlite3 |
Bun.redis | Redis クライアント | ioredis |
Bun.sql | Postgres クライアント | pg, postgres.js |
Bun.file() | ファイル操作 | node:fs readFile/writeFile |
Bun.$\cmd`` | シェルコマンド | execa |
WebSocket | WebSocket クライアント(組み込み) | ws |
テスト
テストには bun:test を使用します。
import { test, expect } from "bun:test";
test("description", () => {
expect(1).toBe(1);
});
bun test で実行します。
フロントエンド開発
Vite の代わりに、Bun.serve() で HTML インポートを使用します。React、CSS、Tailwind に対応しています。
サーバー:
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 ファイル:
<html>
<body>
<script type="module" src="./app.tsx"></script>
</body>
</html>
Bun のバンドラーは .tsx、.jsx、.js を自動的にトランスパイルします。CSS は <link> タグを介してバンドルされます。
HMR を使用するには、bun --hot ./server.ts で実行します。
ドキュメント
API の詳細については、node_modules/bun-types/docs/**.md を参照してください。
コメント
Markdown 対応