---
name: wails_build
kind: function
lang: go
domain: infra
version: "1.0.0"
purity: impure
signature: "WailsBuild(ctx context.Context, cfg WailsBuildConfig) error"
description: "Compila un proyecto Wails para linux/windows/darwin. Incluye WailsDev para modo desarrollo con hot reload."
tags: [wails, build, compile, desktop, infra]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: [os/exec, fmt, strings, context]
params:
  - name: ctx
    desc: "context para cancelacion"
  - name: cfg
    desc: "estructura WailsBuildConfig con Dir, Platform (linux/windows/darwin)"
output: "nil si la compilacion fue exitosa, error en caso contrario"
tested: false
tests: []
test_file_path: ""
file_path: "functions/infra/wails_build.go"
---

## Ejemplo

```go
// Build para linux
WailsBuild(ctx, WailsBuildConfig{
    Dir:      "/home/user/my-app",
    Platform: "linux",
})

// Desarrollo con hot reload + browser
WailsDev(ctx, "/home/user/my-app", true)
```

## Notas

Requiere `wails` CLI instalado. WailsDev bloquea el proceso (es un servidor de desarrollo).
