Compilar desde el código
El TRS Launcher es una app de Tauri 2: un núcleo en Rust hace el trabajo y una aplicación de una sola página con Nuxt 4 es la interfaz. El TRS Client del juego es un proyecto de Gradle aparte en el mismo repositorio.
Qué hay en cada sitio
| Carpeta | Qué es |
|---|---|
app/ | Frontend en Nuxt 4 (SPA, sin SSR) |
src-tauri/src/ | App de Tauri: comandos, registro de tareas, traducción de errores, plugins |
src-tauri/crates/core/ | trs-core: el núcleo del launcher, independiente de la interfaz |
src-tauri/resources/client-mod/ | Jars del TRS Client ya compilados que incluye el launcher |
client-mod/ | TRS Client: núcleo común y builds para Fabric, Forge y NeoForge |
packaging/ | Recetas para AUR y Flatpak, archivos de escritorio de Linux |
tests/ | Pruebas del frontend (Vitest) |
La web y la API de TRS están en api/ en la rama website (mira más abajo).
Requisitos
- Node.js 22 o más nuevo y pnpm (la versión está fijada en
package.json;corepack enablela prepara) - Rust (stable, toolchain MSVC) con rustup
- Visual Studio Build Tools con «Desarrollo para el escritorio con C++»
- WebView2 (preinstalado en Windows 10 y 11)
- Node.js 22 o más nuevo y pnpm
- Rust (stable) con rustup
- los paquetes de desarrollo de WebKitGTK y GTK:
sudo apt install build-essential curl file pkg-config libssl-dev libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libxdo-dev
sudo pacman -S --needed base-devel webkit2gtk-4.1 gtk3 libayatana-appindicator librsvg openssl xdotool
sudo dnf install gcc-c++ openssl-devel webkit2gtk4.1-devel gtk3-devel libappindicator-gtk3-devel librsvg2-devel libxdo-devel
Iniciar el launcher en modo desarrollo
Descarga el código
git clone https://github.com/theredstonee/TRS-Launcher.git
cd TRS-Launcher
Instala las dependencias
pnpm install
Esto también ejecuta nuxt prepare.
Inícialo
pnpm app:dev
Esto inicia el servidor de desarrollo de Nuxt en http://localhost:3000 y abre la ventana de Tauri con recarga en
caliente. La primera vez compila la parte de Rust y tarda un rato.
TRS_LAUNCHER_HOME en una carpeta aparte para que tus datos de prueba no se mezclen con tus datos reales del
launcher.Ejecutar las comprobaciones
Son las mismas comprobaciones que ejecuta la CI en cada push y pull request.
pnpm typecheck
pnpm test
pnpm generate # el crate de Tauri necesita un frontend compilado
cd src-tauri
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
La cadena de inicio se puede probar sin interfaz. Descarga e inicia la versión indicada en su propia carpeta de datos:
cd src-tauri
cargo run -p trs-core --example launch -- <carpeta-de-datos> 1.21.1 [vanilla|fabric|quilt|forge|neoforge] [segundos]
Para probar las reglas del asistente de errores con un registro o un informe de fallos (también
en src-tauri):
cargo run -p trs-core --example crash_scan -- <registro-o-informe> [--memory MB --system MB]
Crear instaladores
pnpm app:build
El instalador NSIS queda en src-tauri/target/release/bundle.
pnpm tauri build --bundles appimage,deb,rpm
Las recetas de AUR y Flatpak están en packaging/.
pnpm tauri build --config '{"bundle":{"createUpdaterArtifacts":false}}' (en lugar del texto JSON también vale la ruta
de un archivo JSON con el mismo contenido).CurseForge necesita una clave de API al compilar: la variable de entorno CURSEFORGE_API_KEY o el archivo
~/.tauri/curseforge-api-key (%USERPROFILE%\.tauri\curseforge-api-key en Windows). Sin clave, el build funciona igual
y simplemente oculta CurseForge.
Compilar el TRS Client
No necesitas compilar el mod para compilar el launcher: los jars ya compilados están en
src-tauri/resources/client-mod/.
Requisito: un JDK 21 o más nuevo para ejecutar Gradle. Las toolchains de Gradle descargan JDK 17, 21 o 25 para compilar si faltan.
Cada familia de cargadores es un build de Gradle propio con su propio wrapper:
| Carpeta | Cargador y versiones | Compilar |
|---|---|---|
client-mod/ (raíz, fabric/) | Fabric 1.14.4–26.3 | ./gradlew collectLauncherJars |
client-mod/neoforge/ | NeoForge 1.20.2–26.3 | ./gradlew collectLauncherJars |
client-mod/forge/ | Forge 1.20–26.3 | ./gradlew :collectLauncherJars |
client-mod/forge-mojmap-legacy/ | Forge 1.14.4, 1.15.2, 1.16.x, 1.17.1, 1.18.x, 1.19.x | ./gradlew collectLauncherJars |
client-mod/forge-1.13.2/ | Forge 1.13.2 | ./gradlew build |
client-mod/legacy/ | Forge 1.8.9–1.12.2 | ./gradlew collectLauncherJars |
client-mod/legacy-1.7.10/ | Forge 1.7.10 | ./gradlew build |
Para el build de Fabric en client-mod/:
./gradlew build # todas las versiones + las pruebas unitarias de common/
./gradlew :fabric:1.21.1:build # una sola versión
./gradlew :fabric:1.21.1:runClient # iniciar esa versión de Minecraft con el mod (carpeta de juego: client-mod/run)
./gradlew collectLauncherJars # escribir dist/*.jar y dist/builds.json para el launcher
.\gradlew o gradlew.bat en lugar de ./gradlew. Compila los proyectos uno tras otro: todos
escriben en el mismo client-mod/dist/.Web y API
La web y la API de TRS son un proyecto aparte de Nuxt 4/Nitro en la rama website. Tiene su propio package.json y
lockfile y necesita Node.js 24.11 o más nuevo.
git checkout website
cd api
pnpm install
pnpm typecheck && pnpm lint && pnpm test
Los endpoints públicos de la API se describen en API pública.