İ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/base mevcut (@shevky/core bağımlılığı olarak kurulur)

1. Eklenti Dosyasını Oluşturun

mkdir -p plugins

plugins/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.txt

Beklenen Çıktı

  • dist/build-info.txt mevcut.
  • Dosya şöyle bir satır içeriyor: Build timestamp: 2026-03-25T21:00:00.000Z

Nasıl Çalışır?

  1. Derleme betiği eklentinizi PluginRegistry.load() aracılığıyla yükledi.
  2. dist:clean kancası sırasında işleyiciniz eklenti bağlamıyla çağrıldı.
  3. Temel bağlamdan ctx.path.combine() ve ctx.file.write() kullandınız.
  4. Dosya dist/ dizinine yazılmıştır.

Yaygın Hatalar

HataDüzelt
Eklenti yüklenmediplugins[] 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

İlgili