Prettier-eslint, eslint-plugin-prettier और eslint-config-prettier में क्या अंतर है?


93

मैं Prettier और ESLint का एक साथ उपयोग करना चाहता हूं, लेकिन मैंने कुछ संघर्षों का अनुभव किया। मैं देख रहा हूं कि ये तीन पैकेज हैं जो उन्हें अग्रानुक्रम में उपयोग करने की अनुमति देते हैं:

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

हालांकि, मैं अनिश्चित हूं कि इन पैकेज नामों के रूप में उपयोग करने के लिए सभी होते हैं eslintऔर prettier

मुझे कौन सा उपयोग करना चाहिए?

जवाबों:


208

ESLint जैसे कई नियमों और उन है कि सुंदर के साथ प्रारूपित से संबंधित हो सकता है संघर्ष कर रहे हैं, शामिल हैं arrow-parens, space-before-function-parenआदि इसलिए उन्हें एक साथ का उपयोग कर कुछ मुद्दों का कारण होगा। ESLint और Prettier को एक साथ उपयोग करने के लिए निम्नलिखित उपकरण बनाए गए हैं।

मैंने एक सारणी में सारणीबद्ध प्रारूप में तुलना लिखी है , क्योंकि स्टैक ओवरफ्लो तालिका स्वरूपण का समर्थन नहीं करता है। यदि आप अधिक संगठन पसंद करते हैं, तो इसे देखें।

यहाँ छवि विवरण दर्ज करें

prettier-eslint: रन prettierतो eslint --fixकोड पर चलाते हैं । eslintआमतौर पर संबंधित नियमों को प्रारूपित करने के लिए स्वचालित सुधार होते हैं, और eslint --fixप्रिटियर द्वारा शुरू किए गए परस्पर विरोधी स्वरूपण को ठीक करने में सक्षम होंगे। आपको prettierअलग से कमांड चलाने की आवश्यकता नहीं होगी ।

eslint-plugin-prettier: यह एक ESLint प्लगइन है, जिसका अर्थ है कि इसमें अतिरिक्त नियमों के लिए कार्यान्वयन है जो ESLint के लिए जाँच करेगा। यह प्लगइन हूड के नीचे प्रीटीयर का उपयोग करता है और जब आपका कोड प्रेटीयर के अपेक्षित आउटपुट से अलग होता है, तो मुद्दे उठाएंगे। उन मुद्दों के माध्यम से स्वचालित रूप से तय किया जा सकता है --fix। इस प्लगइन के साथ, आपको prettierअलग से कमांड चलाने की आवश्यकता नहीं है , कमांड को प्लगइन के भाग के रूप में चलाया जा रहा है। यह प्लगइन स्वरूपण-संबंधित नियमों को बंद नहीं करता है, और यदि आप ऐसे नियमों को मैन्युअल रूप से या उसके माध्यम से देखते हैं, तो आपको उन्हें बंद करना होगा eslint-config-prettier

eslint-config-prettier: यह एक ESLint कॉन्फ़िगरेशन है, और इसमें नियमों के लिए कॉन्फ़िगरेशन (चाहे कुछ नियम चालू हों, बंद हों या विशेष कॉन्फ़िगरेशन हों) शामिल हैं। यह कॉन्फ़िगरेशन आपको अन्य ESLint कॉन्फ़िगरेशन के साथ Prettier का उपयोग करने की अनुमति देता है जैसे eslint-config-airbnbकि स्वरूपण-संबंधित नियमों को बंद करके जो Prettier के साथ संघर्ष कर सकता है। इस कॉन्फ़िगरेशन के साथ, आपको उपयोग करने की आवश्यकता नहीं है, prettier-eslintक्योंकि ESLint आपके कोड को प्रीटियर प्रारूप के बाद शिकायत नहीं करेगा। हालाँकि, आपको prettierअलग से कमांड चलाने की आवश्यकता होगी ।

आशा है कि इस अंतर को पूरा करता है।

अद्यतन: यह गैर-स्वरूपण मुद्दों के लिए प्रेटियर को प्रारूपण और ESLint को संभालने देने के लिए अनुशंसित अभ्यास है, prettier-eslintउस अभ्यास के समान दिशा में prettier-eslintनहीं है , इसलिए अब अनुशंसित नहीं है। आप उपयोग कर सकते हैं eslint-plugin-prettierऔर eslint-config-prettierएक साथ।


मेरे पास एक eslintrc फ़ाइल है जिसमें मेरे पास कस्टम नियम हैं। यानी नो-एक्सट्रा-सेमी-हालांकि रनिंग एसेलिंट - उपसर्ग प्रीटीयर के लिए सेमी कोलोन की आवश्यकता होती है, क्या मुझे प्रीटीयर के लिए अलग नियम फ़ाइल की आवश्यकता है?
जसन

2
एस्लिंट प्लगइन्स और कॉन्फिग्स के बीच सामान्य अंतर पर सिर्फ एक टिप्पणी, क्योंकि मुझे लगा कि यह वही है जो मेरे लिए गायब था: प्लगइन्स नए एस्लिंट नियमों को परिभाषित करते हैं, और सेट वेदर या नहीं (और कैसे) नियमों को लागू करना चाहिए।
15

1
इसके साथ eslint-config-prettier, हमें प्रीटियर चलाने की आवश्यकता क्यों है? eslint --fixकोड को उसी तरह से प्रारूपित नहीं करेगा जैसा कि पूर्ववर्ती होगा?
मट्टो ह्रस्तनिक

@MateoHrastnik ESLint सभी संभव प्रारूपण मुद्दों को संभालता नहीं है। इस सूत्र का संदर्भ लें - github.com/prettier/prettier-eslint/issues/101
यांगशुन ताई

10
यह 2019 है, और यह अभी भी सबसे अच्छा स्पष्टीकरण है जो मुझे पता है, आधिकारिक एक की तुलना में बहुत बेहतर है। आप जोड़ सकते हैं कि प्रीटियर-एस्लिंट को किसी भी अधिक अनुशंसित नहीं किया गया है। और बाद के 2 अब एक साथ काम कर सकते हैं।
फेट रिडल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.