Skip to content

このドキュメントでは、Windows でのビルドプロセスについて説明します。問題が発生した場合は、#contributing チャンネル(Discord) に参加してサポートを受けてください。

デフォルトの powershell.exe ではなく、PowerShell 7(pwsh.exe を使用することを強く推奨します。

前提条件

スクリプトを有効にする

デフォルトでは、未検証のスクリプトの実行はブロックされています。

ps1
> Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

システム依存関係

Bun v1.1 以降が必要です。コードジェネレーターの実行には Bun を使用します。

ps1
> irm bun.sh/install.ps1 | iex

「C++ によるデスクトップ開発」ワークロードを含む Visual Studio。インストール時に、Git for Windows がまだインストールされていない場合は、Git もインストールしてください。

Visual Studio はウィザードを使用してグラフィカルに、または WinGet を介してインストールできます:

ps1
> winget install "Visual Studio Community 2022" --override "--add Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.Component.Git " -s msstore

Visual Studio のインストール後、以下が必要です:

  • LLVM 19.1.7
  • Go
  • Rust
  • NASM
  • Perl
  • Ruby
  • Node.js

NOTE

Zig コンパイラーはビルドプロセスによって自動的にダウンロード、インストール、および更新されます。

Scoop を使用して、これらの残りのツールを簡単にインストールできます。

ps1
> irm https://get.scoop.sh | iex
> scoop install nodejs-lts go rust nasm ruby perl sccache
# scoop は同時に llvm と残りをインストールしようとするとバグる可能性がある
> scoop install llvm@19.1.7

NOTE

これらに WinGet や他のパッケージマネージャーを使用しないでください。Strawberry Perl がインストールされる可能性が高く、 これは多くの他のユーティリティを含み、それらが `$Env:PATH` にインストールされて MSVC と競合し、 ビルドを破壊します。

WebKit をローカルでビルドする予定がある場合(オプション)、以下のパッケージをインストールする必要があります:

ps1
> scoop install make cygwin python

ここからは、.\scripts\vs-shell.ps1 をソースした PowerShell ターミナルを使用することが期待されています。このスクリプトは Bun リポジトリで利用可能で、実行することで読み込めます:

ps1
> .\scripts\vs-shell.ps1

確認するには、mt.exe のような MSVC 専用コマンドラインをチェックします:

ps1
> Get-Command mt

NOTE

`ninja` / `cmake` をグローバルパスにインストールすることは推奨されません。 `.\scripts\vs-shell.ps1` をソースせずに bun をビルドしようとする状況に遭遇する可能性があるためです。

ビルド

ps1
> bun run build

# 最初の `bun run build` の後は、以下を使用してビルドできます
> ninja -Cbuild/debug

成功した場合、build/debug フォルダーに bun-debug.exe が存在するはずです。

ps1
> .\build\debug\bun-debug.exe --revision

これを $Env:PATH に追加する必要があります。最も簡単な方法は、スタートメニューを開き、「Path」と入力し、環境変数メニューに移動して C:\.....\bun\build\debug をユーザー環境変数 PATH に追加することです。その後、エディターを再起動する必要があります(それでも更新されない場合は、ログアウトして再度ログインしてください)。

追加のパス

  • WebKit は build/debug/cache/webkit/ に抽出されます
  • Zig は build/debug/cache/zig/bin/zig.exe に抽出されます

テスト

テストスイートは、bun test <path> を使用するか、ラッパースクリプト bun node:test <path> を使用して実行できます。bun node:test コマンドは、テストランナーでのクラッシュがスイート全体を停止させないように、すべてのテストファイルを bun.exe の別々のインスタンスで実行します。

ps1
# セットアップ
> bun i --cwd packages\bun-internal-test

# レポーターを使用してテストスイート全体を実行
# package.json スクリプト "test" はデフォルトで "build/debug/bun-debug.exe" を使用します
> bun run test

# 個々のテストファイルを実行:
> bun-debug test node\fs
> bun-debug test "C:\bun\test\js\bun\resolve\import-meta.test.js"

トラブルシューティング

.rc ファイルのビルドに失敗する

llvm-rc.exe は奇妙です。使用しないでください。rc.exe を使用してください。そのためには、Visual Studio 開発ターミナルにいることを確認し、rc /? をチェックして Microsoft Resource Compiler であることを確認してください。

failed to write output 'bun-debug.exe': permission denied

bun-debug.exe がすでに開いている場合、上書きできません。おそらく実行中のインスタンスがあります。おそらく vscode デバッガー内ですか?

Bun by www.bunjs.com.cn 編集