Skip to content

Dieses Dokument beschreibt den Build-Prozess für Windows. Wenn Sie auf Probleme stoßen, treten Sie bitte dem #contributing Channel auf unserem Discord bei, um Hilfe zu erhalten.

Es wird dringend empfohlen, PowerShell 7 (pwsh.exe) anstelle des Standard-powershell.exe zu verwenden.

Voraussetzungen

Skripte aktivieren

Standardmäßig ist die Ausführung nicht verifizierter Skripte blockiert.

ps1
> Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Systemabhängigkeiten

Bun v1.1 oder höher. Wir verwenden Bun, um seine eigenen Code-Generatoren auszuführen.

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

Visual Studio mit der "Desktop-Entwicklung mit C++" Workload. Stellen Sie bei der Installation sicher, dass Sie auch Git installieren, falls Git für Windows nicht bereits installiert ist.

Visual Studio kann grafisch über den Assistenten oder über WinGet installiert werden:

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

Nach Visual Studio benötigen Sie Folgendes:

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

NOTE

Der Zig-Compiler wird automatisch vom Build-Prozess heruntergeladen, installiert und aktualisiert.

Scoop kann verwendet werden, um diese verbleibenden Tools einfach zu installieren.

ps1
> irm https://get.scoop.sh | iex
> scoop install nodejs-lts go rust nasm ruby perl sccache
# scoop scheint fehlerhaft zu sein, wenn Sie llvm und den Rest gleichzeitig installieren
> scoop install llvm@19.1.7

NOTE

Bitte verwenden Sie WinGet/andere Paketmanager hierfür nicht, da Sie wahrscheinlich Strawberry Perl anstelle einer minimalen Installation von Perl installieren. Strawberry Perl enthält viele andere Utilities, die in `$Env:PATH` installiert werden und mit MSVC in Konflikt geraten und den Build unterbrechen.

Wenn Sie beabsichtigen, WebKit lokal zu erstellen (optional), sollten Sie diese Pakete installieren:

ps1
> scoop install make cygwin python

Ab hier wird erwartet, dass Sie ein PowerShell-Terminal mit .\scripts\vs-shell.ps1 als Quelle verwenden. Dieses Skript ist im Bun-Repository verfügbar und kann durch Ausführen geladen werden:

ps1
> .\scripts\vs-shell.ps1

Zur Überprüfung können Sie nach einem MSVC-only-Befehl wie mt.exe suchen:

ps1
> Get-Command mt

NOTE

Es wird nicht empfohlen, `ninja` / `cmake` in Ihrem globalen Pfad zu installieren, da Sie in eine Situation geraten könnten, in der Sie Bun versuchen zu erstellen, ohne dass .\scripts\vs-shell.ps1 als Quelle geladen wurde.

Erstellen

ps1
> bun run build

# nach dem ersten `bun run build` können Sie Folgendes verwenden, um zu bauen
> ninja -Cbuild/debug

Wenn dies erfolgreich war, sollten Sie eine bun-debug.exe im build/debug Ordner haben.

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

Sie sollten dies zu $Env:PATH hinzufügen. Der einfachste Weg dies zu tun, ist das Startmenü zu öffnen, "Path" einzutippen und dann das Umgebungsvariablen-Menü zu navigieren, um C:\.....\bun\build\debug zur Benutzer-Umgebungsvariablen PATH hinzuzufügen. Sie sollten dann Ihren Editor neu starten (wenn er sich immer noch nicht aktualisiert, melden Sie sich ab und wieder an).

Zusätzliche Pfade

  • WebKit wird nach build/debug/cache/webkit/ extrahiert
  • Zig wird nach build/debug/cache/zig/bin/zig.exe extrahiert

Tests

Sie können die Test-Suite entweder mit bun test <path> oder mit dem Wrapper-Skript bun node:test <path> ausführen. Der bun node:test Befehl führt jede Testdatei in einer separaten Instanz von bun.exe aus, um zu verhindern, dass ein Absturz im Test-Runner die gesamte Suite stoppt.

ps1
# Setup
> bun i --cwd packages\bun-internal-test

# Führen Sie die gesamte Test-Suite mit Reporter aus
# das package.json Skript "test" verwendet standardmäßig "build/debug/bun-debug.exe"
> bun run test

# Führen Sie eine einzelne Testdatei aus:
> bun-debug test node\fs
> bun-debug test "C:\bun\test\js\bun\resolve\import-meta.test.js"

Fehlerbehebung

.rc-Datei kann nicht erstellt werden

llvm-rc.exe ist seltsam. Verwenden Sie es nicht. Verwenden Sie rc.exe. Stellen Sie dazu sicher, dass Sie sich in einem Visual Studio Dev-Terminal befinden. Überprüfen Sie rc /?, um sicherzustellen, dass es Microsoft Resource Compiler ist.

Schreiben von 'bun-debug.exe' fehlgeschlagen: Zugriff verweigert

Sie können bun-debug.exe nicht überschreiben, wenn es bereits geöffnet ist. Sie haben wahrscheinlich eine laufende Instanz, vielleicht im VSCode-Debugger?

Bun von www.bunjs.com.cn bearbeitet