Nexanexa
← Referencia

Nativo, despliegue y CLI

Escritorio y móvil desde el mismo código, un deploy real, y el toolchain completo.

Tauri (escritorio)

nexa add tauri
cd src-tauri && cargo build

Genera un binario real de Windows/macOS/Linux, compilado con cargo — mismo código fuente que la web.

Capacitor (Android/iOS)

nexa add capacitor
npx @capacitor/cli add android
cd android && ./gradlew assembleDebug

Genera un proyecto real de Android/iOS. El build de Android se verificó de punta a punta (APK real compilado con Gradle); iOS necesita Xcode.

Despliegue con nginx

nexa add nginx
# genera deploy/nginx.conf

Genera deploy/nginx.conf real: gzip, cabeceras de seguridad, caché immutable de un año solo para archivos con hash, y un proxy_pass real para rutas dinámicas sin paths.

El CLI completo

nexa build      # compila src/pages/**/*.tsx -> dist/
nexa lint       # falla si hay avisos, sin escribir dist/
nexa test       # dist/ fresco + corre "test" de package.json
nexa dev        # recompila en cada request + auto-reload

nexa build/preview/dev/lint/test/add/info — lint falla si hay avisos SEO/paquetes; test compila (dist/ fresco) y corre el test runner del proyecto.

nexa.toml — referencia completa

[project]
name = "mi-sitio"

[dependencies]
ui = "0.1.0"

[imports]
stripe = "/vendor/nexa-stripe.js"

[performance]
maxInitialJS = 15000

Todas las secciones son opcionales salvo [project]. Ninguna requiere package.json ni npm.

@nexa/test

import { mountChunk, getEntry } from "@nexa/test";

const entry = getEntry(manifest, 3);
const activate = (await import(entry.module)).default;
const { el } = mountChunk(activate, `<button>Comprar</button>`);
el.click();

Para probar un chunk de activación aislado, fuera del navegador real — mountChunk/getEntry/expectEntry contra el manifiesto real.