Güzel-eslint, eslint-eklenti-güzel ve eslint-config-güzel arasındaki fark nedir?


94

Prettier ve ESLint'i birlikte kullanmak istiyorum, ancak birbiri ardına kullanarak bazı çatışmalar yaşadım. Birlikte kullanılmalarına izin veren şu üç paket olduğunu görüyorum:

  • prettier-eslint
  • eslint-plugin-prettier
  • eslint-config-prettier

Ancak, bu paket adlarının tümü eslintve içerdiğinden hangisini kullanacağımdan emin değilim prettier.

Hangisini kullanmalıyım?

Yanıtlar:


209

ESLint gibi birçok kural ve güzel ile biçimlendirme-ilişkili kudreti çatışma olanlar içerir arrow-parens, space-before-function-parenvb Dolayısıyla bazı sorunlara neden olur onları bir arada kullanarak. ESLint ve Prettier'ı birlikte kullanmak için aşağıdaki araçlar oluşturulmuştur.

Stack Overflow tablo formatını desteklemediğinden, özet olarak tablo formatında bir karşılaştırma yazdım . Daha fazla organizasyon tercih ediyorsanız kontrol edin.

görüntü açıklamasını buraya girin

prettier-eslint: Çalıştırır prettiersonra çalıştırın eslint --fixkodu. eslintgenellikle ilgili kuralları biçimlendirmek için otomatik düzeltmelere sahiptir ve eslint --fixPrettier tarafından getirilen çakışan biçimlendirmeyi düzeltebilir. prettierKomutu ayrı olarak çalıştırmanıza gerek yoktur .

eslint-plugin-prettier: Bu bir ESLint eklentisidir, yani ESLint'in kontrol edeceği ek kurallar için uygulama içerir. Bu eklenti, başlık altında Prettier kullanır ve kodunuz Prettier'in beklenen çıktısından farklı olduğunda sorunları ortaya çıkarır. Bu sorunlar aracılığıyla otomatik olarak düzeltilebilir --fix. Bu eklenti ile prettierkomutu ayrı ayrı çalıştırmanıza gerek yoktur, komut eklentinin bir parçası olarak çalıştırılır. Bu eklenti, biçimlendirmeyle ilgili kuralları kapatmaz ve bu tür kurallar için manuel olarak veya aracılığıyla çakışmalar görürseniz bunları kapatmanız gerekecektir eslint-config-prettier.

eslint-config-prettier: Bu bir ESLint yapılandırmasıdır ve kurallar için yapılandırmalar içerir (belirli kuralların açık, kapalı veya özel yapılandırmalar olup olmadığı). Bu yapılandırma, Prettier ile çakışabilecek eslint-config-airbnbbiçimlendirmeyle ilgili kuralları kapatarak Prettier'ı diğer ESLint yapılandırmalarıyla kullanmanıza olanak tanır . prettier-eslintPrettier, kodunuzu biçimlendirdikten sonra ESLint şikayet etmeyeceği için bu yapılandırma ile kullanmanız gerekmez . Bununla birlikte, prettierkomutu ayrı ayrı çalıştırmanız gerekecektir .

Umarım bu farklılıkları özetler.

Güncelleme: Prettier'in biçimlendirmeyi ve biçimlendirme dışı sorunlar için ESLint'i işlemesine izin vermek önerilen uygulamadır prettier-eslint, bu uygulama ile aynı yönde prettier-eslintdeğildir , bu nedenle artık önerilmez. eslint-plugin-prettierVe eslint-config-prettierbirlikte kullanabilirsiniz .


Özel kurallarım olan bir eslintrc dosyam var. yani ekstra yarı yarı yok, ancak eslint --fix'i güzel ile çalıştırmak noktalı virgül gerektirir, daha güzel için ayrı bir kural dosyasına ihtiyacım var mı?
jasan

2
Sadece eslint eklentileri ve yapılandırmalar arasındaki genel fark üzerine bir yorum, çünkü benim için eksik olanın olduğunu hissettim: eklentiler yeni eslint kurallarını tanımlar ve yapılandırmalar kurallara (ve nasıl) uygulanacağını belirler.
laugri

1
İle eslint-config-prettierneden daha güzel koşmamız gerekiyor? Olmaz eslint --fixaynı şekilde daha güzel olur kodunu biçimlendirmek?
Mateo Hrastnik

@MateoHrastnik ESLint olası tüm biçimlendirme sorunlarını işlemez. Bu konuya bakın - github.com/prettier/prettier-eslint/issues/101
Yangshun Tay

10
Yıl 2019 ve bu hala bulduğum en iyi açıklama, resmi olandan çok daha iyi. Daha güzel olanın artık tavsiye edilmediğini de ekleyebilirsiniz. Ve son ikisi artık birlikte çalışabilir.
Fate Riddle
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.