executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
bun-runtimeランタイムとしてのBun、パッケージマネージャー、バンドラー、テストランナー。Bun対Nodeを選択する場合、移行メモ、Vercelサポート。
Independent GitHub snapshot · Automated classification · Original documentation governs
Bunは高速なオールインワンJavaScriptランタイムとツールキット:ランタイム、パッケージマネージャー、バンドラー、テストランナー。
使用時期:Bunを採用、Nodeから移行、Bunスクリプト/テストを書いたりデバッグしたり、Vercelまたは他のプラットフォームでBunを構成する場合。
bun --versionで実際のバージョンを確認してください。node:内部APIや、Node固有の内部動作に依存するパッケージは動作しないことがあります。本番環境で依存する前に検証してください。bun.lock(テキスト)がデフォルトです。古いバージョンはbun.lockb(バイナリ)を使用しており、Bunは移行のため現在もこれを読み込めますが、新規プロジェクトはbun.lockを使うべきです。bun test。Nodeからの移行:node script.jsをbun run script.jsまたはbun script.jsに置き換えます。npm installの代わりにbun installを実行します。ほとんどのパッケージは機能します。npm スクリプトにはbun runを使用します。bun xをnpxスタイルの1回限りの実行に使用します。Nodeの組み込みはサポートされています。パフォーマンスの向上のため、Bun APIが存在する場合は優先してください。
パッケージ・ワークスペースコマンド:bun add <pkg> / bun remove <pkg> / bun update [pkg]で依存関係を管理し、bun outdatedで古い依存関係を一覧表示します。bun pm lsはロックファイルを使ってプロジェクトの依存関係と解決済みバージョンを表示し、--allを付けると推移的な依存関係も含めます。インストール済みファイルの内容の整合性を検証するものではありません。bun auditはbun.lock内のパッケージ名とバージョンを使ってレジストリの脆弱性情報を照会し、package.json、bun.lock、node_modulesは変更しません。プライベートなパッケージ情報を送信する前に、承認済みの送信先を確認してください。スコープ付きレジストリにアドバイザリエンドポイントがないパッケージはスキップされ、終了コードに影響しません。bun audit fixは依存関係を更新・インストールし、ロックファイルとインストール済みパッケージ、場合によっては直接依存の固定バージョンも変更します。適用されるライフサイクルスクリプトも含む、変更を伴うインストール操作としてレビューしてください。bun dedupeは重複インストールを解消し、bun pruneは参照されなくなったパッケージを削除します。モノレポはルートのpackage.jsonのworkspaces配列を使用します(npm/yarnと同じ規約)。特定のワークスペースでスクリプトを実行するにはbun run --filter <pkg-name> <script>を使用します。
組み込みAPI:依存関係を追加する前にこれらを検討してください — ファイルI/OにはBun.file / Bun.write、組み込みSQLiteデータベースにはbun:sqlite、HTTP/WebSocketサーバーにはBun.serve、SQLデータベースにはBun.sql、RedisにはBun.redis、S3互換オブジェクトストレージにはBun.S3Client。その他の新機能は1.4リリースノートを参照してください。
Vercel:vercel.jsonでbunVersion: "1.4.x"を設定し、Bun 1.4(Rustランタイム)を使用してください。詳細はVercelのBunランタイムドキュメントを参照。ビルド:bun run buildまたはbun build ./src/index.ts --outdir=dist。インストール:再現可能なデプロイの場合はbun install --frozen-lockfile。
参考:Bun 1.4 リリースノート。
# 依存関係をインストール(bun.lockを作成/更新)
bun install
# スクリプトまたはファイルを実行
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
Bun 1.4でCIに利用できるオプションには、影響を受けるテストを選ぶbun test --changed[=<ref>]、ファイルごとのグローバル環境を使うbun test --isolate、ワーカープロセスで実行するbun test --parallel[=<n>]、CIを分割するbun test --shard=<n>/<count>があります。--isolateは同じプロセス内でファイルごとに新しいJavaScriptグローバル環境を作り、文書化されたファイル単位のリソースをクリーンアップします。プロセスやセキュリティのサンドボックスではありません。--parallelではデフォルトで有効です。--timings=<file>はスケジューリング用に過去の所要時間を読み込み、--update-timingsは所要時間を記録します。例:bun test --parallel --timings=./test-timings.json --update-timings。複数シャードのタイミングファイルのパスを決める前に、インストール済みバージョンのヘルプとドキュメントを確認してください。
// test/example.test.ts
import { expect, test } from "bun:test";
test("add", () => {
expect(1 + 2).toBe(3);
});
const file = Bun.file("package.json");
const json = await file.json();
Bun.serve({
port: 3000,
fetch(req) {
return new Response("Hello");
},
});
bun.lock)をコミットする。bun runを優先する。TypeScriptの場合、Bunは.tsをネイティブに実行する。