Versions- und Abhängigkeitsverwaltung
Verfolgen Sie Plugin-Versionen und prüfen Sie die Kompatibilität beim Laden
Versions- und Abhängigkeitsverwaltung ist eine kostenlose Lua Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Lua Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Versionierung wichtig ist
Plugins entwickeln sich weiter. Ein Plugin der Version 2.0 kann mit APIs der Version 1.0 inkompatibel sein. Die Versionsverwaltung verhindert unbemerkte Kompatibilitätsfehler.
Semantische Versionierung
Verwenden Sie semantische Versionierung: MAJOR.MINOR.PATCH. Fehlerhafte oder inkompatible Änderungen erhöhen MAJOR, neue Funktionen erhöhen MINOR und Fehlerbehebungen erhöhen PATCH.
Plugin-Manifest mit Version
Jedes Plugin gibt seine eigene Version und die erforderliche Version der App-API an.
return {
name = "auth",
version = "2.1.0",
apiRequired = ">=1.0.0",
deps = { {name="logger", version=">=1.0.0"} },
init = function(app) -- ... end
}Versionen analysieren
Teilen Sie eine Versionszeichenkette in vergleichbare Bestandteile auf.
local function parseVersion(v)
local major, minor, patch = v:match("(%d+)%.(%d+)%.(%d+)")
return {tonumber(major), tonumber(minor), tonumber(patch)}
end
local function versionGe(a, b)
a, b = parseVersion(a), parseVersion(b)
for i = 1, 3 do
if a[i] ~= b[i] then return a[i] > b[i] end
end
return true
endKompatibilitätsprüfung
Prüfen Sie beim Laden eines Plugins, ob die API-Version der App die Anforderung des Plugins erfüllt.
local APP_VERSION = "1.5.0"
local function checkCompatibility(plugin)
local req = plugin.apiRequired or ">=0.0.0"
local minVer = req:match(">=(.+)")
if minVer and not versionGe(APP_VERSION, minVer) then
error(("Plugin %s requires app >= %s, got %s"):format(
plugin.name, minVer, APP_VERSION))
end
endAbhängigkeitsgraph auflösen
Erstellen Sie einen Abhängigkeitsgraphen und führen Sie eine topologische Sortierung durch, um die Ladereihenfolge zu bestimmen.
Zirkuläre Abhängigkeiten erkennen
Verfolgen Sie, welche Plugins gerade geladen werden. Wenn ein Plugin von einem Plugin abhängt, das bereits geladen wird (also eine Zyklusabhängigkeit vorliegt), lösen Sie einen Fehler aus.
local loading = {}
local function loadWithCycleCheck(name, plugins)
if loading[name] then error("Circular dependency: " .. name) end
loading[name] = true
-- load deps then load plugin
loading[name] = nil
endUpgrade-Pfade
Dokumentieren Sie Migrationsleitfäden für Erhöhungen der MAJOR-Version. Erwägen Sie, während einer Übergangsphase einen Kompatibilitäts-Shim für alte Plugin-APIs bereitzustellen.
Plugin-Registry mit Versionen
Eine zentrale Registry speichert alle installierten Plugin-Versionen. Lösen Sie Konflikte, indem Sie die höchste kompatible Version bevorzugen.
Lockfile-Muster
Wie bei npm's package-lock.json: Erfassen Sie die exakt verwendeten Versionen einer Produktionsbereitstellung, um reproduzierbare Builds sicherzustellen.
Versionsaushandlung zur Laufzeit
Ermöglichen Sie Plugins, mehrere kompatible API-Versionen anzugeben. Die Host-App handelt eine Version aus und wählt die höchste von beiden Seiten unterstützte Version.
Frage zur Versionierung
Was zeigt eine Erhöhung der MAJOR-Version bei der semantischen Versionierung an?
Zusammenfassung: Versionierung und Abhängigkeiten
Nehmen Sie in jedes Plugin-Manifest die Version und apiRequired auf. Analysieren und vergleichen Sie Versionen beim Laden. Erkennen Sie zirkuläre Abhängigkeiten. Verwenden Sie eine topologische Sortierung für die Ladereihenfolge. Führen Sie ein Lockfile für reproduzierbare Produktionsbereitstellungen.
Häufig gestellte Fragen
Ist die Lektion „Versions- und Abhängigkeitsverwaltung“ kostenlos?
Ja — der vollständige Text von „Versions- und Abhängigkeitsverwaltung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Lua Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Lua Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Versions- und Abhängigkeitsverwaltung“?
Verfolgen Sie Plugin-Versionen und prüfen Sie die Kompatibilität beim Laden Du übst Lua Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Lua Academy zu starten?
Keine Vorkenntnisse erforderlich. Lua Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Versions- und Abhängigkeitsverwaltung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Lua Academy-Lektion Code schreiben und ausführen?
Ja. Jede Lua Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Plugins erkennen und laden
- Plugin-API und Hook-System
- Plugin-Ausführung in einer Sandbox
- Versions- und Abhängigkeitsverwaltung