mcpField
B
bun-runtime

bun-runtime

github.com/secondsky開発240421 回インストール5 週間前に更新
リポジトリ

bun-runtime について

JavaScript開発者向けのBun Runtime利用ガイドです。スクリプト実行、パッケージスクリプト、環境変数、デバッグに加え、ワークスペースとモジュールの事前読み込みを扱います。

主な機能

  1. 01JavaScript、TypeScript、JSXの実行
  2. 02監視再起動とホットリロード
  3. 03環境変数の読み込みとモジュールの事前読み込み
  4. 04デバッガー起動オプション
  5. 05ワークスペーススクリプトの絞り込み

活用シーン

  1. 01BunでTypeScriptスクリプトを実行
  2. 02コード変更時にプロセスを再起動またはホットリロード
  3. 03モノレポ内でスクリプトを絞り込んで実行
  4. 04実行中のプログラムにデバッガーを接続

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/secondsky/claude-skills --skill bun-runtime

インストール後、Claude Code で/bun-runtimeを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
bunfig.md
cli-flags.md
module-resolution.md

詳細

Bun Runtime

Bun は JavaScriptCore(Safari のエンジン)上に構築された、高速なオールインワン JavaScript ランタイムです。Linux では Node.js より起動が 4 倍速くなります。

クイックスタート

# Run a file
bun run index.ts
bun index.ts  # shorthand

# Run with watch mode
bun --watch run index.ts

# Run package.json script
bun run dev

# Run with hot reloading
bun --hot run server.ts

主な CLI フラグ

フラグ目的
--watchファイルの変更時に再起動します
--hotホットモジュール置換(状態を保持)
--smolメモリ使用量を削減します(ガベージコレクションが遅くなります)
--inspectデバッガーを有効にします
--preload実行前にモジュールを読み込みます
--env-file特定の .env ファイルを読み込みます
-e, --evalコード文字列を評価します

ファイルの実行

Bun は TypeScript と JSX を実行時にトランスパイルします。

bun run index.js
bun run index.ts
bun run index.jsx
bun run index.tsx

重要:Bun のフラグは bun の直後に指定してください。

bun --watch run dev    # Correct
bun run dev --watch    # Wrong - flag passed to script

package.json スクリプト

# Run script
bun run dev
bun dev  # shorthand (if no Bun command conflicts)

# List available scripts
bun run

# Run with Bun instead of Node
bun run --bun vite

Bun はライフサイクルフック(preclean、postclean など)に対応しています。

ウォッチモードとホットリロード

モードフラグ動作
ウォッチ--watch変更時にプロセス全体を再起動します
ホット--hotモジュールを置き換え、状態を保持します
# Watch mode - full restart
bun --watch run server.ts

# Hot reloading - preserves connections/state
bun --hot run server.ts

環境変数

Bun は .env ファイルを自動的に読み込みます。

# Loads automatically: .env, .env.local, .env.development
bun run index.ts

# Specify env file
bun --env-file .env.production run index.ts

# Disable auto-loading
# In bunfig.toml: env = false

コード内でのアクセス:

const apiKey = process.env.API_KEY;
const bunEnv = Bun.env.NODE_ENV;

利用可能なグローバル

グローバル提供元備考
BunBunメイン API オブジェクト
BufferNode.jsバイナリデータ
processNode.jsプロセス情報
fetchWebHTTP リクエスト
Request/ResponseWebHTTP 型
WebSocketWebWebSocket クライアント
cryptoWeb暗号化
consoleWebロギング
__dirnameNode.js現在のディレクトリ
__filenameNode.js現在のファイル

プリロードスクリプト

メインスクリプトの前にモジュールを読み込みます。

bun --preload ./setup.ts run index.ts

または、bunfig.toml に記述します。

preload = ["./setup.ts"]

用途:ポリフィル、グローバル設定、インストルメンテーション。

標準入力からの実行

# Pipe code to Bun
echo "console.log('Hello')" | bun run -

# Redirect file
bun run - < script.js

ワークスペースとモノレポ

# Run script in specific packages
bun run --filter 'pkg-*' build

# Run in all workspaces
bun run --filter '*' test

デバッグ

# Start debugger
bun --inspect run index.ts

# Wait for debugger connection
bun --inspect-wait run index.ts

# Break on first line
bun --inspect-brk run index.ts

Chrome DevTools または VS Code から接続します。

よくあるエラー

エラー原因対処方法
Cannot find module依存関係がありませんbun install を実行します
Top-level awaitasync の外で await を使用していますasync 関数で囲むか、.mts を使用します
--watch not workingフラグの位置が間違っていますrun の前にフラグを指定します

リファレンスを読み込むタイミング

次の場合は references/bunfig.md を読み込みます。

  • bunfig.toml を設定するとき
  • テスト設定を行うとき
  • パッケージマネージャーの動作を設定するとき
  • JSX オプションを設定するとき

次の場合は references/cli-flags.md を読み込みます。

  • CLI フラグの全リファレンスが必要なとき
  • ランタイムの高度なオプションを設定するとき
  • デバッグを設定するとき

次の場合は references/module-resolution.md を読み込みます。

  • インポートエラーをトラブルシューティングするとき
  • パスエイリアスを設定するとき
  • Bun の解決アルゴリズムを理解するとき

コメント