Skip to content

Este documento describe el proceso de compilación para Windows. Si encuentras problemas, únete al canal #contributing en nuestro Discord para obtener ayuda.

Se recomienda encarecidamente usar PowerShell 7 (pwsh.exe) en lugar del powershell.exe predeterminado.

Prerrequisitos

Habilitar scripts

De forma predeterminada, la ejecución de scripts no verificados está bloqueada.

ps1
> Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Dependencias del sistema

Bun v1.1 o posterior. Usamos Bun para ejecutar sus propios generadores de código.

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

Visual Studio con la carga de trabajo "Desarrollo de escritorio con C++". Al instalar, asegúrate de instalar Git también, si Git para Windows no está instalado.

Visual Studio se puede instalar gráficamente usando el asistente o a través de WinGet:

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

Después de Visual Studio, necesitas lo siguiente:

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

NOTE

El compilador Zig se descarga, instala y actualiza automáticamente durante el proceso de compilación.

Scoop se puede usar para instalar estas herramientas restantes fácilmente.

ps1
> irm https://get.scoop.sh | iex
> scoop install nodejs-lts go rust nasm ruby perl sccache
# scoop parece tener errores si instalas llvm y el resto al mismo tiempo
> scoop install llvm@19.1.7

NOTE

No uses WinGet/otro gestor de paquetes para esto, ya que probablemente instalarás Strawberry Perl en lugar de una instalación más minimalista de Perl. Strawberry Perl incluye muchas otras utilidades que se instalan en `$Env:PATH` que entrarán en conflicto con MSVC y romperán la compilación.

Si tienes la intención de compilar WebKit localmente (opcional), debes instalar estos paquetes:

ps1
> scoop install make cygwin python

A partir de aquí, se espera que uses una terminal de PowerShell con .\scripts\vs-shell.ps1 cargado como fuente. Este script está disponible en el repositorio de Bun y se puede cargar ejecutándolo:

ps1
> .\scripts\vs-shell.ps1

Para verificar, puedes buscar un comando exclusivo de MSVC como mt.exe

ps1
> Get-Command mt

NOTE

No se recomienda instalar `ninja` / `cmake` en tu ruta global, porque puedes encontrarte en una situación donde intentas compilar bun sin haber cargado .\scripts\vs-shell.ps1 como fuente.

Compilación

ps1
> bun run build

# después de la `bun run build` inicial puedes usar lo siguiente para compilar
> ninja -Cbuild/debug

Si esto fue exitoso, deberías tener un bun-debug.exe en la carpeta build/debug.

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

Deberías agregar esto a $Env:PATH. La forma más simple de hacerlo es abrir el menú de inicio, escribir "Path", y luego navegar al menú de variables de entorno para agregar C:\.....\bun\build\debug a la variable de entorno de usuario PATH. Luego debes reiniciar tu editor (si no se actualiza aún, cierra sesión y vuelve a iniciar).

Rutas adicionales

  • WebKit se extrae en build/debug/cache/webkit/
  • Zig se extrae en build/debug/cache/zig/bin/zig.exe

Pruebas

Puedes ejecutar la suite de pruebas usando bun test <path> o usando el script de envoltura bun node:test <path>. El comando bun node:test ejecuta cada archivo de prueba en una instancia separada de bun.exe, para evitar que un bloqueo en el ejecutor de pruebas detenga toda la suite.

ps1
# Configuración
> bun i --cwd packages\bun-internal-test

# Ejecutar toda la suite de pruebas con reporter
# el script "test" del package.json usa "build/debug/bun-debug.exe" de forma predeterminada
> bun run test

# Ejecutar un archivo de prueba individual:
> bun-debug test node\fs
> bun-debug test "C:\bun\test\js\bun\resolve\import-meta.test.js"

Solución de problemas

El archivo .rc falla al compilar

llvm-rc.exe es extraño. no lo uses. usa rc.exe, para hacer esto asegúrate de estar en una terminal de desarrollo de visual studio, verifica rc /? para asegurarte de que es Microsoft Resource Compiler

Error al escribir 'bun-debug.exe': permiso denegado

no puedes sobrescribir bun-debug.exe si ya está abierto. probablemente tengas una instancia en ejecución, quizás en el depurador de vscode?

Bun por www.bunjs.com.cn editar