ToolStabil

Velisch Hot Reload

Überwacht Dateiänderungen und kompiliert oder startet den Server automatisch neu.

Installation

cd tools/hot-reload
cargo build --release

Watch Mode

Überwacht Dateien und kompiliert bei Änderungen:

velin-hot-reload --watch

Optionen

--directory <path>

Verzeichnis zu überwachen (Standard: .)

--compile-command <cmd>

Kompilier-Befehl (Standard: velin-compiler compile)

velin-hot-reload --watch --directory src/ --compile-command "cargo build"

Server Mode

Startet einen Development Server, der bei Änderungen automatisch neu startet:

velin-hot-reload --server

Optionen

--port <port>

Port für Development Server (Standard: 3000)

--run-command <cmd>

Start-Befehl für Server (Standard: cargo run)

velin-hot-reload --server --port 8080 --run-command "cargo run --bin my-server"

Features

Automatische Datei-Überwachung

Überwacht alle .velin Dateien rekursiv

Intelligente Kompilierung

Kompiliert nur geänderte Dateien

Server-Neustart

Startet Server automatisch neu bei Änderungen

Live-Logs

Zeigt Server-Logs und Kompilierungsfehler

Konfiguration

Erstelle eine Konfigurationsdatei im Projekt-Root:

.velinhotreloadrc.jsonjson
{
  "watch": {
    "directory": "src/",
    "compile_command": "velin-compiler compile",
    "ignore": [
      "target/**",
      "vendor/**",
      "*.tmp"
    ]
  },
  "server": {
    "port": 3000,
    "run_command": "cargo run",
    "env": {
      "RUST_LOG": "debug"
    }
  }
}

VS Code Integration

.vscode/tasks.jsonjson
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Hot Reload",
      "type": "shell",
      "command": "velin-hot-reload --server",
      "isBackground": true,
      "problemMatcher": []
    }
  ]
}

Docker Integration

Dockerfile.devdockerfile
FROM rust:latest

WORKDIR /app
COPY . .

# Installiere Hot Reload
RUN cd tools/hot-reload && cargo build --release

CMD ["velin-hot-reload", "--server", "--port", "3000"]

Best Practices

Separate Terminals

Verwende separate Terminals für Hot Reload und Logs

Ignoriere Build-Artefakte

Ignoriere target/, vendor/, etc.

Port-Konfiguration

Verwende unterschiedliche Ports für verschiedene Services

Nur in Development

Verwende Hot Reload nur in Development, nicht in Production