bun-runtime
Bunをランタイム、パッケージマネージャー、バンドラー、テストランナーとして活用できます。Node.jsとの使い分け、移行時の注意点、およびVercelでのサポート内容について説明します。
description の原文を見る
Bun 作为运行时、包管理器、打包器和测试运行器。何时选择 Bun 而非 Node、迁移注意事项以及 Vercel 支持。
SKILL.md 本文
Bun ランタイム
Bun は、高速で多機能な JavaScript ランタイムおよびツールセットです:ランタイム、パッケージマネージャー、バンドラー、テストランナーを備えています。
使い分け
- Bun を優先する 場合:新規 JS/TS プロジェクト、インストール/実行速度が重要なスクリプト、Bun ランタイムを使用する Vercel デプロイ、単一のツールチェーン(実行 + インストール + テスト + ビルド)を望む場合。
- Node を優先する 場合:最大のエコシステム互換性が必要、Node 前提のレガシーツールを使用、特定の依存パッケージで既知の Bun の問題がある場合。
以下の場面で使用します:Bun の採用、Node からの移行、Bun スクリプト/テストの作成またはデバッグ、Vercel またはその他のプラットフォームでの Bun 設定。
仕組み
- ランタイム:すぐに使える Node 互換ランタイム(JavaScriptCore ベース、Zig で実装)。
- パッケージマネージャー:
bun installは npm/yarn より大幅に高速です。現在の Bun ではロックファイルのデフォルトはbun.lock(テキスト形式)です;旧バージョンはbun.lockb(バイナリ形式)を使用します。 - バンドラー:アプリケーションとライブラリ用の組み込みバンドラーとトランスパイラー。
- テストランナー:Jest のような API を備えた組み込みの
bun test。
Node からの移行:node script.js を bun run script.js または bun script.js に置き換えます。npm install の代わりに bun install を実行します。ほとんどのパッケージが動作します。npm スクリプトを実行するには bun run を使用します;npx 風の一時的な実行には bun x を使用します。Node 組み込みモジュールがサポートされており、Bun API が存在する場合はそれを優先して使用することでパフォーマンスが向上します。
Vercel:プロジェクト設定でランタイムを Bun に設定します。ビルドコマンド:bun run build または bun build ./src/index.ts --outdir=dist。インストールコマンド:bun install --frozen-lockfile で再現可能なデプロイを実現します。
例
実行とインストール
# 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.ts
スクリプトと環境変数
bun run --env-file=.env dev
FOO=bar bun run script.ts
テスト
bun test
bun test --watch
// test/example.test.ts
import { expect, test } from "bun:test";
test("add", () => {
expect(1 + 2).toBe(3);
});
ランタイム API
const file = Bun.file("package.json");
const json = await file.json();
Bun.serve({
port: 3000,
fetch(req) {
return new Response("Hello");
},
});
ベストプラクティス
- 再現可能なインストールのためロックファイル(
bun.lockまたはbun.lockb)をコミットします。 - スクリプト内では
bun runを優先します。TypeScript の場合、Bun はネイティブで.tsを実行します。 - 依存関係を最新に保ちます;Bun とエコシステムは急速に進化しています。
原文
ナビゲーション
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- loulanyue
- ライセンス
- MIT
- 最終更新
- 2026/5/3
Source: https://github.com/loulanyue/awesome-claude-notes / ライセンス: MIT