Skip to content

Ce document décrit le processus de construction pour Windows. Si vous rencontrez des problèmes, veuillez rejoindre le canal #contributing sur notre Discord pour obtenir de l'aide.

Il est fortement recommandé d'utiliser PowerShell 7 (pwsh.exe) au lieu de powershell.exe par défaut.

Prérequis

Activer les scripts

Par défaut, l'exécution de scripts non vérifiés est bloquée.

ps1
> Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Dépendances système

Bun v1.1 ou ultérieur. Nous utilisons Bun pour exécuter ses propres générateurs de code.

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

Visual Studio avec la charge de travail "Développement Desktop avec C++". Lors de l'installation, assurez-vous d'installer Git également, si Git pour Windows n'est pas déjà installé.

Visual Studio peut être installé graphiquement en utilisant l'assistant ou via WinGet :

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

Après Visual Studio, vous avez besoin de ce qui suit :

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

NOTE

Le compilateur Zig est automatiquement téléchargé, installé et mis à jour par le processus de construction.

Scoop peut être utilisé pour installer facilement ces outils restants.

ps1
> irm https://get.scoop.sh | iex
> scoop install nodejs-lts go rust nasm ruby perl sccache
# scoop semble avoir des bugs si vous installez llvm et le reste en même temps
> scoop install llvm@19.1.7

NOTE

Veuillez ne pas utiliser WinGet ou d'autres gestionnaires de packages pour cela, car vous installerez probablement Strawberry Perl au lieu d'une installation plus minimale de Perl. Strawberry Perl inclut de nombreuses autres utilitaires qui sont installés dans `$Env:PATH` et qui entreront en conflit avec MSVC et casseront la construction.

Si vous avez l'intention de construire WebKit localement (optionnel), vous devriez installer ces packages :

ps1
> scoop install make cygwin python

À partir de là, il est attendu que vous utilisiez un terminal PowerShell avec .\scripts\vs-shell.ps1 sourcé. Ce script est disponible dans le dépôt Bun et peut être chargé en l'exécutant :

ps1
> .\scripts\vs-shell.ps1

Pour vérifier, vous pouvez vérifier une commande en ligne de commande MSVC uniquement comme mt.exe

ps1
> Get-Command mt

NOTE

Il n'est pas recommandé d'installer `ninja` / `cmake` dans votre chemin global, car vous pourriez vous retrouver dans une situation où vous essayez de construire bun sans .\scripts\vs-shell.ps1 sourcé.

Construction

ps1
> bun run build

# après le `bun run build` initial, vous pouvez utiliser ce qui suit pour construire
> ninja -Cbuild/debug

Si cela a réussi, vous devriez avoir un bun-debug.exe dans le dossier build/debug.

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

Vous devriez ajouter ceci à $Env:PATH. La manière la plus simple de le faire est d'ouvrir le menu démarrer, taper "Path", puis naviguer dans le menu des variables d'environnement pour ajouter C:\.....\bun\build\debug à la variable d'environnement utilisateur PATH. Vous devriez ensuite redémarrer votre éditeur (s'il ne se met toujours pas à jour, déconnectez-vous et reconnectez-vous).

Chemins supplémentaires

  • WebKit est extrait vers build/debug/cache/webkit/
  • Zig est extrait vers build/debug/cache/zig/bin/zig.exe

Tests

Vous pouvez exécuter la suite de tests soit en utilisant bun test <path> soit en utilisant le script wrapper bun node:test <path>. La commande bun node:test exécute chaque fichier de test dans une instance séparée de bun.exe, pour empêcher un crash dans le test runner d'arrêter toute la suite.

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

# Exécuter toute la suite de tests avec le reporter
# le script package.json "test" utilise "build/debug/bun-debug.exe" par défaut
> bun run test

# Exécuter un fichier de test individuel :
> bun-debug test node\fs
> bun-debug test "C:\bun\test\js\bun\resolve\import-meta.test.js"

Dépannage

Le fichier .rc échoue à construire

llvm-rc.exe est étrange. ne l'utilisez pas. utilisez rc.exe, pour ce faire assurez-vous d'être dans un terminal de développement visual studio, vérifiez rc /? pour vous assurer qu'il s'agit de Microsoft Resource Compiler

échec de l'écriture de la sortie 'bun-debug.exe' : permission refusée

vous ne pouvez pas écraser bun-debug.exe s'il est déjà ouvert. vous avez probablement une instance en cours d'exécution, peut-être dans le débogueur vscode ?

Bun édité par www.bunjs.com.cn