Pemberian Versi dan Pengelolaan Dependensi
Lacak versi plugin dan periksa kompatibilitas saat pemuatan.
Pemberian Versi dan Pengelolaan Dependensi adalah pelajaran Lua Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Lua Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Lua Academy mencakup 4 pelajaran total.
Mengapa Pembuatan Versi Penting
Plugin berkembang. Plugin v2.0 mungkin tidak kompatibel dengan API v1.0. Pelacakan versi mencegah kegagalan kompatibilitas yang tidak terlihat.
Penerapan Versi Semantik
Gunakan penerapan versi semantik: MAJOR.MINOR.PATCH. Perubahan yang merusak menaikkan MAJOR, fitur baru menaikkan MINOR, dan perbaikan bug menaikkan PATCH.
Manifes Plugin dengan Versi
Setiap plugin mendeklarasikan versinya sendiri dan versi API aplikasi yang dipersyaratkan.
return {
name = "auth",
version = "2.1.0",
apiRequired = ">=1.0.0",
deps = { {name="logger", version=">=1.0.0"} },
init = function(app) -- ... end
}Penguraian Versi
Uraikan string versi menjadi komponen yang dapat dibandingkan.
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
endPemeriksaan Kompatibilitas
Saat memuat plugin, verifikasi bahwa versi API aplikasi memenuhi persyaratan plugin.
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
endResolusi Graf Dependensi
Buat graf dependensi dan lakukan pengurutan topologis untuk menentukan urutan pemuatan.
Deteksi Dependensi Sirkular
Lacak plugin yang sedang dimuat. Jika sebuah plugin bergantung pada plugin yang sedang dimuat (dalam suatu siklus), tampilkan kesalahan.
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
endJalur Peningkatan
Dokumentasikan panduan migrasi untuk peningkatan versi MAJOR. Pertimbangkan penyediaan lapisan kompatibilitas untuk API plugin lama selama masa transisi.
Registri Plugin dengan Versi
Registri pusat menyimpan semua versi plugin yang terpasang. Selesaikan konflik dengan mengutamakan versi kompatibel tertinggi.
Pola Berkas Kunci
Seperti package-lock.json milik npm: catat versi tepat yang digunakan dalam penerapan produksi untuk memastikan proses pembuatan yang dapat direproduksi.
Negosiasi Versi Saat Runtime
Izinkan plugin mendeklarasikan beberapa versi API yang kompatibel. Aplikasi host bernegosiasi dan memilih versi tertinggi yang didukung bersama.
Pertanyaan tentang Pembuatan Versi
Apa yang ditunjukkan oleh kenaikan versi MAJOR dalam penerapan versi semantik?
Ringkasan: Pembuatan Versi dan Dependensi
Sertakan versi dan apiRequired dalam setiap manifes plugin. Uraikan dan bandingkan versi saat pemuatan. Deteksi dependensi sirkular. Gunakan pengurutan topologis untuk menentukan urutan pemuatan. Pertahankan berkas kunci untuk penerapan produksi yang dapat direproduksi.
Belajar Lua dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 40
- Pelajaran
- 159
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pemberian Versi dan Pengelolaan Dependensi” gratis?
Ya — teks lengkap “Pemberian Versi dan Pengelolaan Dependensi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Lua Academy, upgrade ke CoddyKit PRO. Kursus Lua Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pemberian Versi dan Pengelolaan Dependensi”?
Lacak versi plugin dan periksa kompatibilitas saat pemuatan. Kamu berlatih Lua Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Lua Academy?
Tidak diperlukan pengalaman sebelumnya. Lua Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Pemberian Versi dan Pengelolaan Dependensi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Lua Academy ini?
Ya. Setiap pelajaran Lua Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Penemuan dan Pemuatan Plugin
- API Plugin dan Sistem Hook
- Sandbox untuk Eksekusi Plugin
- Pemberian Versi dan Pengelolaan Dependensi