NPM | lint-staged nedir?

May 30, 2022

lint-staged bir DevTools paketidir

Buradan pakete ulaşabilirsiniz.
lint-staged git ile gönderilmeye hazır dosyalara belirlediğiniz komutları uygular. GitHub'ınızda düzensiz kod istemiyor musunuz? lint-staged ile tanımladığınız prettier komutunu GitHub'a gönderilmeye hazır dosyalarınızda prettify edebilirsiniz. GitHub'ınıza hatalı kod göndermek istemezsiniz değil mi? lint-staged ile eslint paketini kullanabilirsiniz.



TypeScript'de kullanıyorsunuzdur değil mi? Neden GitHub'a göndermeden önce hata var mı diye kontrol ettirmiyorsunuz?

lint-staged kullanımı

Node.js projenizde bir adet lint-staged.config.mjs adında dosya oluşturunuz.
Dosyanın içine export default ile bir obje döndürünüz.
Bu objenin keylerine glob ile tanımlanmış dosyaları, value'suna ise hangi komutları çalıştıracağınızı belirtiniz.

export default {

  // Tüm gönderilmeye hazır .ts dosyalarını ESLint ile hatalarını düzeltir
  // ve TypeScript ile typechecking yapar.
  "*.ts": (files) =>
    `eslint --fix ${files.join(" ")}` &&
    `"tsc -p tsconfig.json --pretty --noEmit"`,

  // Tüm gönderilmeye hazır dosyaları prettify eder.
  "*": (files) => `prettier --ignore-unknown --write ${files.join(" ")}`,

  // Tüm gönderilmeye hazır .prisma dosyalarını formatlar.
  "*.prisma": (files) => files.map((file) => `prisma format --schema ${file}`),
};

lint-staged 'in en iyi arkadaşı; husky

Bu lint-staged komutunu maalesef ki siz kendiniz commit etmeden önce çalıştırmalısınız.
Bu biraz yorucu değil mi? Otomatik yapamıyor muyuz? Tabii ki yapabiliyoruz!!! 🎉
Siz normal commit'inizi ederken husky devreye girer ve otomatik olarak lint-staged komutunu çalıştırır.
husky hakkında daha fazla bilgi için yakında.

lint-staged ile uyumlu en iyi paketler

  • husky
  • eslint
  • prettier
  • typescript
  • ve diğerleri...