Compiler
Rust-basiertes SWC-Plugin für gt-next.
Compiler
gt-next enthält ein Rust-basiertes SWC-Plugin, das zur Build-Zeit Analysen durchführt, um häufige Übersetzungsfehler zu erkennen und die Leistung zu optimieren.
Funktionen
Erkennung dynamischer Inhalte
Erkennt nicht eingebettete dynamische Inhalte in Übersetzungskomponenten:
// ❌ Ungültig - dynamischer Inhalt nicht umschlossen
<T>Hallo {userName}</T>
// ✅ Gültig - dynamischer Inhalt in Variable-Komponente umschlossen
<T>Hallo <Var>{userName}</Var></T>Validierung von Funktionsaufrufen
Erkennt nicht-literal übergebene Argumente in Übersetzungsfunktionen:
const t = useGT();
// ❌ Ungültig - Template-Literale und Verkettung
t(`Hello ${name}`)
t("Hello " + name)
// ✅ Gültig - String-Literale mit Variablensubstitution
t("Hello, {name}!", { name })Hash-Generierung zur Compile-Zeit
Berechnet Übersetzungs-Hashes im Voraus für bessere Laufzeitleistung:
// Eingabe
<T>Hello world</T>
// Ausgabe (wenn aktiviert)
<T _hash="a1b2c3d4">Hello world</T>Konfiguration
Konfiguriere das SWC‑Plugin in deiner next.config.js:
import { withGTConfig } from 'gt-next/config';
export default withGTConfig(nextConfig, {
locales: ['en', 'es'],
swcPluginOptions: {
logLevel: 'silent', // Warnungsausgabe steuern
compileTimeHash: false, // Hash-Generierung aktivieren
},
});Optionen
-
logLevel: Steuert die Ausgabestufe für Warnungen'silent'- Keine Warnungen (Standard in Produktion)'error'- Als Build-Fehler anzeigen'warn'- Als Warnungen anzeigen (Standard in der Entwicklung)'info'- Informationsmeldungen anzeigen'debug'- Alle Debug-Informationen anzeigen
-
compileTimeHash: Aktiviert die Generierung von Compile-Time-Hashesfalse- Deaktiviert (Standard)true- Generiert Hashes zur Build-Zeit für bessere Performance
Einschränkungen
Das SWC‑Plugin verarbeitet files einzeln und kann Verstöße in reexportierten Komponenten nicht erkennen:
// Datei A: export { T as Translate } from 'gt-next'
// Datei B: import { Translate } from './A'
<Translate>Hello {name}</Translate> // Wird nicht erkanntWie ist diese Anleitung?