このドキュメントでは、Windows でのビルドプロセスについて説明します。問題が発生した場合は、#contributing チャンネル(Discord) に参加してサポートを受けてください。
デフォルトの powershell.exe ではなく、PowerShell 7(pwsh.exe) を使用することを強く推奨します。
前提条件
スクリプトを有効にする
デフォルトでは、未検証のスクリプトの実行はブロックされています。
> Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestrictedシステム依存関係
Bun v1.1 以降が必要です。コードジェネレーターの実行には Bun を使用します。
> irm bun.sh/install.ps1 | iex「C++ によるデスクトップ開発」ワークロードを含む Visual Studio。インストール時に、Git for Windows がまだインストールされていない場合は、Git もインストールしてください。
Visual Studio はウィザードを使用してグラフィカルに、または WinGet を介してインストールできます:
> winget install "Visual Studio Community 2022" --override "--add Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.Component.Git " -s msstoreVisual Studio のインストール後、以下が必要です:
- LLVM 19.1.7
- Go
- Rust
- NASM
- Perl
- Ruby
- Node.js
NOTE
Zig コンパイラーはビルドプロセスによって自動的にダウンロード、インストール、および更新されます。Scoop を使用して、これらの残りのツールを簡単にインストールできます。
> irm https://get.scoop.sh | iex
> scoop install nodejs-lts go rust nasm ruby perl sccache
# scoop は同時に llvm と残りをインストールしようとするとバグる可能性がある
> scoop install llvm@19.1.7NOTE
これらに WinGet や他のパッケージマネージャーを使用しないでください。Strawberry Perl がインストールされる可能性が高く、 これは多くの他のユーティリティを含み、それらが `$Env:PATH` にインストールされて MSVC と競合し、 ビルドを破壊します。WebKit をローカルでビルドする予定がある場合(オプション)、以下のパッケージをインストールする必要があります:
> scoop install make cygwin pythonここからは、.\scripts\vs-shell.ps1 をソースした PowerShell ターミナルを使用することが期待されています。このスクリプトは Bun リポジトリで利用可能で、実行することで読み込めます:
> .\scripts\vs-shell.ps1確認するには、mt.exe のような MSVC 専用コマンドラインをチェックします:
> Get-Command mtNOTE
`ninja` / `cmake` をグローバルパスにインストールすることは推奨されません。 `.\scripts\vs-shell.ps1` をソースせずに bun をビルドしようとする状況に遭遇する可能性があるためです。ビルド
> bun run build
# 最初の `bun run build` の後は、以下を使用してビルドできます
> ninja -Cbuild/debug成功した場合、build/debug フォルダーに bun-debug.exe が存在するはずです。
> .\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 の別々のインスタンスで実行します。
# セットアップ
> 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 デバッガー内ですか?