Skip to content

Questo documento descrive il processo di compilazione per Windows. In caso di problemi, unisciti al #contributing channel sul nostro Discord per ricevere aiuto.

È fortemente raccomandato usare PowerShell 7 (pwsh.exe) invece di powershell.exe predefinito.

Prerequisiti

Abilitare gli Script

Per impostazione predefinita, l'esecuzione di script non verificati è bloccata.

ps1
> Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Dipendenze di Sistema

Bun v1.1 o successivo. Usiamo Bun per eseguire i suoi generatori di codice.

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

Visual Studio con il workload "Desktop Development with C++". Durante l'installazione, assicurati di installare anche Git, se Git per Windows non è già installato.

Visual Studio può essere installato graficamente usando la procedura guidata o tramite WinGet:

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

Dopo Visual Studio, hai bisogno di quanto segue:

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

NOTE

Il compilatore Zig viene scaricato, installato e aggiornato automaticamente dal processo di compilazione.

Scoop può essere usato per installare facilmente questi strumenti rimanenti.

ps1
> irm https://get.scoop.sh | iex
> scoop install nodejs-lts go rust nasm ruby perl sccache
# scoop sembra avere bug se installi llvm e il resto contemporaneamente
> scoop install llvm@19.1.7

NOTE

Non usare WinGet o altri package manager per questi, poiché probabilmente installerai Strawberry Perl invece di un'installazione più minimale di Perl. Strawberry Perl include molte altre utility che vengono installate in `$Env:PATH` e andranno in conflitto con MSVC e interromperanno la compilazione.

Se intendi compilare WebKit localmente (opzionale), dovresti installare questi pacchetti:

ps1
> scoop install make cygwin python

Da qui in poi, è previsto che tu usi un terminale PowerShell con .\scripts\vs-shell.ps1 caricato. Questo script è disponibile nel repository di Bun e può essere caricato eseguendolo:

ps1
> .\scripts\vs-shell.ps1

Per verificare, puoi controllare un comando da riga di comando solo MSVC come mt.exe:

ps1
> Get-Command mt

NOTE

Non è raccomandato installare `ninja` / `cmake` nel tuo percorso globale, perché potresti trovarti in una situazione in cui provi a compilare bun senza aver caricato .\scripts\vs-shell.ps1.

Compilazione

ps1
> bun run build

# dopo la prima `bun run build` puoi usare quanto segue per compilare
> ninja -Cbuild/debug

Se questo ha avuto successo, dovresti avere un bun-debug.exe nella cartella build/debug.

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

Dovresti aggiungere questo a $Env:PATH. Il modo più semplice per farlo è aprire il menu start, digitare "Path", quindi navigare nel menu delle variabili d'ambiente per aggiungere C:\.....\bun\build\debug alla variabile d'ambiente utente PATH. Dovresti quindi riavviare il tuo editor (se non si aggiorna ancora, disconnettiti e riaccedi).

Percorsi extra

  • WebKit viene estratto in build/debug/cache/webkit/
  • Zig viene estratto in build/debug/cache/zig/bin/zig.exe

Test

Puoi eseguire la suite di test usando bun test <percorso> o usando lo script wrapper bun node:test <percorso>. Il comando bun node:test esegue ogni file di test in un'istanza separata di bun.exe, per impedire che un arresto anomalo nel test runner interrompa l'intera suite.

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

# Esegui l'intera suite di test con reporter
# lo script "test" del package.json usa "build/debug/bun-debug.exe" per impostazione predefinita
> bun run test

# Esegui un singolo file di test:
> bun-debug test node\fs
> bun-debug test "C:\bun\test\js\bun\resolve\import-meta.test.js"

Risoluzione dei problemi

Il file .rc non riesce a compilare

llvm-rc.exe è strano. Non usarlo. Usa rc.exe, per farlo assicurati di essere in un terminale di sviluppo di Visual Studio, controlla rc /? per assicurarti che sia Microsoft Resource Compiler

Impossibile scrivere 'bun-debug.exe': autorizzazione negata

Non puoi sovrascrivere bun-debug.exe se è già aperto. Probabilmente hai un'istanza in esecuzione, forse nel debugger di vscode?

Bun a cura di www.bunjs.com.cn