851a8dc690
Genera apps/{nombre}/ con Wails v2 backend (main.go con embed frontend/dist,
app.go con struct App y bindings Greet/GetVersion) + frontend Vite+React+Mantine
con alias @fn_library.
Flag --with-db anade store.go con SQLite (schema items) y bindings CRUD
(ListItems, CreateItem); app.go se regenera con campo db.
wails.json con scripts pnpm, go.mod con replace a fn-registry, app.md con
framework wails+vite+react+mantine y dir_path correcto.
Verifica con go mod tidy al final. wails build requiere CLI instalado pero
el scaffold funciona sin el.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.0 KiB
4.0 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, example, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | example | file_path | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| init_desktop_app | pipeline | bash | pipelines | 1.0.0 | impure | init_desktop_app(nombre: string, [--with-db]) -> void | Scaffold de Wails desktop app: Go backend + React frontend con Mantine y @fn_library. Genera main.go (Wails con embed frontend), app.go (bindings Greet/GetVersion), wails.json, go.mod con replace a fn-registry y frontend/ con vite + react + mantine. |
|
|
false | error_go_core |
|
app Wails en apps/{nombre}/ con main.go + app.go + wails.json + frontend/ Vite+React. Ejecutar 'wails dev' o 'wails build' dentro del directorio. | false | fn run init_desktop_app my_tool | bash/functions/pipelines/init_desktop_app.sh |
Sinopsis
fn run init_desktop_app <nombre> [--with-db]
Ejemplo rapido
fn run init_desktop_app data_explorer --with-db
cd apps/data_explorer/frontend && pnpm install && cd ..
wails dev # dev con hot reload
# o bien:
wails build && ./build/bin/data_explorer
Archivos generados
| Archivo | Descripcion |
|---|---|
main.go |
Entry Wails con embed de frontend/dist, options.App, Bind: []interface{}{app} |
app.go |
Struct App con bindings Greet(name), GetVersion() (y con --with-db: ListItems, CreateItem) |
wails.json |
Config Wails: name, outputfilename, scripts frontend (pnpm) |
go.mod |
Modulo Go con github.com/wailsapp/wails/v2 + replace fn-registry |
frontend/package.json |
pnpm + vite + react + @mantine/core + @tabler/icons-react |
frontend/vite.config.ts |
Alias @fn_library, outDir dist para embed |
frontend/tsconfig.json |
TS strict con paths @fn_library/* |
frontend/src/main.tsx |
Root con MantineProvider (defaultColorScheme: dark) |
frontend/src/App.tsx |
Componente que llama bindings Greet y GetVersion via wailsjs |
frontend/postcss.config.cjs |
postcss-preset-mantine |
app.md |
Framework: wails + vite + react + mantine |
Con --with-db anade ademas:
store.go—openDB, tipoItem, bindings CRUDListItems,CreateItem
Flags
| Flag | Efecto |
|---|---|
--with-db |
SQLite con schema items + bindings CRUD como ejemplo |
Post-setup
# 1. Instalar deps del frontend (una vez)
cd apps/{nombre}/frontend && pnpm install && cd ..
# 2. Desarrollo
wails dev # Ventana desktop con hot reload del frontend
# 3. Produccion
wails build # binario en build/bin/{nombre}
./build/bin/{nombre}
Requisitos
El scaffold funciona sin Wails CLI, pero wails dev/wails build requiere:
- Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest - Deps del sistema (Linux): GTK3 + WebKit2GTK — usa
install_wails_bash_infrapara instalarlas:source bash/functions/infra/install_wails.sh && install_wails
Notas
Pipeline impuro: genera archivos via heredocs, ejecuta go mod tidy al
final como verificacion. Si Wails CLI no esta disponible, reporta el warning
y continua — el scaffold es valido, solo wails build falla hasta instalar
el CLI.
El frontend importa @fn_library via alias en vite.config.ts apuntando a
../../../frontend/functions/ui/ (los componentes del registry sin
duplicarlos).
Los bindings de Wails (funciones del struct App) se regeneran en
frontend/wailsjs/go/main/App.ts automaticamente cuando corres wails dev
o wails build.
Abort si apps/{nombre}/ ya existe.
El tag launcher permite que aparezca en el Pipeline Launcher TUI.