İlk Eklentiniz
Bu öğretici, derleme zaman damgasıyla dist/build-info.txt yazan küçük bir eklenti oluşturur.
Önkoşullar
- Mevcut bir Shevky projesi
@shevky/basemevcut (@shevky/corebağımlılığı olarak kurulur)
1. Eklenti Dosyasını Oluşturun
mkdir -p pluginsplugins/build-info-plugin.js oluştur:
import { plugin } from "@shevky/base";
const hooks = {
[plugin.hooks.DIST_CLEAN]: async function (ctx) {
const target = ctx.path.combine(ctx.paths.dist, "build-info.txt");
const content = `Build timestamp: ${new Date().toISOString()}\n`;
await ctx.file.write(target, content);
ctx.log.info("[build-info] Created build-info.txt");
},
};
export default {
name: "build-info-plugin",
version: "0.0.1",
hooks,
};2. Eklentiyi site.json'a kaydedin
Eklenti yolunu plugins dizisine ekleyin:
"plugins": [
"./plugins/build-info-plugin.js"
]Eklenti kaydı, proje kökünden gelen göreceli yolları çözer.
3. Oluşturun ve Doğrulayın
npm run build
cat dist/build-info.txtBeklenen Çıktı
dist/build-info.txtmevcut.- Dosya şöyle bir satır içeriyor:
Build timestamp: 2026-03-25T21:00:00.000Z
Nasıl Çalışır?
- Derleme betiği eklentinizi
PluginRegistry.load()aracılığıyla yükledi. dist:cleankancası sırasında işleyiciniz eklenti bağlamıyla çağrıldı.- Temel bağlamdan
ctx.path.combine()vectx.file.write()kullandınız. - Dosya
dist/dizinine yazılmıştır.
Yaygın Hatalar
| Hata | Düzelt |
|---|---|
| Eklenti yüklenmedi | plugins[] içindeki yol dizesini kontrol edin - proje kökündeki göreli yolu kullanın |
| Modül sözdizimi hataları | Dosyanın geçerli ESM olduğundan emin olun (require değil, import/export kullanın) |
| Eksik çıktı dosyası | Kanca anahtarının geçerli olduğunu doğrulayın (plugin.hooks.DIST_CLEAN) |
Sonraki Adımlar
ctx.contentFiles'e erişmek için farklı bir kanca (örn.content:ready) deneyin.- Tüm içerik alanları için Eklenti API Referansı değerini okuyun.
- Yaygın modeller için Eklenti Yemek Kitabı'a bakın.