Compiler
Rust-basiertes SWC-Plugin von gt-next.
Compiler
gt-next enthält ein Rust-basiertes SWC-Plugin, das zur Build-Zeit Analysen durchführt, um gängige Übersetzungsfehler frühzeitig zu erkennen und die Leistung zu optimieren.
Funktionen
Erkennung dynamischer Inhalte
Erkennt nicht eingeschlossene dynamische Inhalte in Übersetzungskomponenten:
// ❌ Ungültig - dynamischer Inhalt nicht umschlossen
<T>Hallo {userName}</T>
// ✅ Gültig - dynamischer Inhalt in Var-Komponente umschlossen  
<T>Hallo <Var>{userName}</Var></T>Validierung von Funktionsaufrufen
Erkennt nicht-literal übergebene Argumente an Übersetzungsfunktionen:
const t = useGT();
// ❌ Ungültig - Template-Literale und Verkettung
t(`Hello ${name}`)
t("Hello " + name)
// ✅ Gültig - String-Literale mit Variablenersetzung
t("Hello, {name}!", { name })Hash-Generierung zur Kompilierzeit
Berechnet Übersetzungs-Hashes vorab für bessere Laufzeit-Performance:
// Eingabe
<T>Hallo Welt</T>
// Ausgabe (wenn aktiviert)
<T _hash="a1b2c3d4">Hallo Welt</T>Konfiguration
Konfigurieren Sie das SWC-Plugin in Ihrer next.config.js:
import { withGTConfig } from 'gt-next/config';
export default withGTConfig(nextConfig, {
  locales: ['en', 'es'],
  swcPluginOptions: {
    logLevel: 'silent',     // Warnungsausgabe kontrollieren
    compileTimeHash: false, // Hash-Generierung aktivieren
  },
});Optionen
- 
logLevel: Steuert die Ausgabeebene für Warnungen- 'silent'- Keine Warnungen (Standard in Produktion)
- 'error'- Als Build-Fehler anzeigen
- 'warn'- Als Warnungen anzeigen (Standard in Entwicklung)
- 'info'- Info-Meldungen anzeigen
- 'debug'- Alle Debug-Informationen anzeigen
 
- 
compileTimeHash: Aktiviert die Generierung eines Hashes zur Compile-Zeit- false- Deaktiviert (Standard)
- true- Hashes zur Build-Zeit generieren für bessere Performance
 
Einschränkungen
Das SWC-Plugin verarbeitet Dateien einzeln und kann Verstöße in erneut exportierten Komponenten nicht erkennen:
// Datei A: export { T as Translate } from 'gt-next'
// Datei B: import { Translate } from './A'
<Translate>Hallo {name}</Translate> // Wird nicht erkanntWie ist dieser Leitfaden?

