2017-06-22 14 views
38

मैं प्रेटियर और ईस्लिंट का एक साथ उपयोग करना चाहता हूं, लेकिन मुझे बस एक के बाद एक चलने का उपयोग कर कुछ संघर्षों का सामना करना पड़ा। मैं इन तीन संकुल कि मिलकर में इस्तेमाल किया जा करने के लिए उन्हें अनुमति देने के लिए लग रहे हैं देखते हैं कि देखें:प्रीटीयर-एस्लिंट, एस्लिंट-प्लगइन-प्रीटीयर और एस्लिंट-कॉन्फिगर-प्रीटीयर के बीच क्या अंतर है?

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

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

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

उत्तर

87

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

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

enter image description here

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

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

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

आशा है कि यह अंतर को बढ़ाएगा।

+6

बहुत बढ़िया स्व-उत्तर प्रारूप, उपयोगी जानकारी। –

+0

मेरे पास एक eslintrc फ़ाइल है जिसमें मेरे पास कस्टम नियम हैं। i.e no-extra-semi हालांकि चल रहा एस्लिंट - सुंदर के साथ फ़िक्स को अर्ध कोलन की आवश्यकता है, क्या मुझे सुंदर के लिए एक अलग नियम फ़ाइल की आवश्यकता है? – jasan

+1

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

संबंधित मुद्दे