ESLint VS कोड में काम नहीं कर रहा है?


96

ESLint मेरे लिए VS कोड में काम नहीं कर रहा है। मेरे पास वीएस कोड में प्लगइन स्थापित है, और ईएसएलआईटीएन अपने पैकेज में एक डेवलपर निर्भरता के रूप में खुद को बताता है। जेसन, जिसे मैंने भी स्थापित किया है।

मैंने VS कोड उपयोगकर्ता सेटिंग्स में निम्न विकल्प को संशोधित किया है:

{
  "eslint.options": { "configFile": "C:/mypath" }
}

मैंने अपने पैकेज की मुख्य निर्देशिका में eslint --initबुनियादी जोड़ने के लिए कमांड का उपयोग किया है .eslintrc.json

अन्य लोग वीएस कोड से ESLint प्रतिक्रिया प्राप्त करने में सक्षम थे, ठीक उसी ESLint कॉन्फ़िगरेशन फ़ाइल के साथ सटीक पैकेज का उपयोग करके।

.eslintrc.jsonफ़ाइल के अंदर डिफ़ॉल्ट रूप से अनुशंसित नियम सेट में शामिल सभी नियमों को सीधे तोड़ते समय मुझे किसी भी प्रकार की कोई प्रतिक्रिया नहीं मिली है ।

मैं क्या खो रहा हूँ?

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


3
ध्यान दें, यदि आपने ESLint को सफलतापूर्वक स्थापित किया है , लेकिन आपको अपेक्षित रूप से ESLint से कोई प्रतिक्रिया नहीं मिली है, तो एक मौका है कि आप ESLint को प्रारंभ करना भूल गए हैं । ऐसा करने के लिए, अपने प्रोजेक्ट के रूट से इस कमांड को चलाएँ./node_modules/.bin/eslint --init

जवाबों:


26

कुछ कारण हैं कि ESLint आपको प्रतिक्रिया नहीं दे रहा है। ESLint आपकी कॉन्फ़िगरेशन फ़ाइल को पहले आपकी परियोजना में देखने जा रहा है और अगर यह एक .eslintrc.json नहीं ढूँढ सकता है तो यह एक वैश्विक कॉन्फ़िगरेशन के लिए दिखेगा। व्यक्तिगत रूप से, मैं केवल प्रत्येक प्रोजेक्ट में ESLint स्थापित करता हूं और प्रत्येक प्रोजेक्ट के आधार पर कॉन्फ़िगरेशन बनाता हूं।

दूसरा कारण जो आपको फीडबैक नहीं मिल रहा है वह यह है कि फीडबैक प्राप्त करने के लिए आपको .llintrc.json में अपने लाइनिंग नियमों को परिभाषित करना होगा। यदि वहां कोई नियम नहीं हैं, या आपके पास कोई प्लग इन स्थापित नहीं है, तो आपको उन्हें परिभाषित करना होगा।


1
यदि आपके पास एक स्थानीय .eslintrc.json है तो आपको अपनी सेटिंग्स में अपने configFile को परिभाषित करने की आवश्यकता नहीं है।
ईजे मेसन

3
मेरे पास .eslintrc.jsonपहले से ही मेरी परियोजना के मुख्य फ़ोल्डर में रखा गया है, और मेरे नियम ESLint द्वारा अनुशंसित नियमों का विस्तार करते हैं, जो कि मैं परीक्षण कर रहा था। मैंने अपने खुद के कुछ नियमों को आगे के परीक्षण के लिए भी जोड़ा है, लेकिन कोई सफलता नहीं है।
जॉन लैंडन

41
कमांड लाइन के माध्यम से सीधे ESLint का उपयोग करते समय, सब कुछ ठीक से काम करता है, और यह सभी त्रुटियों को ढूंढता है। यहाँ मुद्दा वीएस कोड के साथ लगता है, न कि ईएसलिंट के साथ।
जॉन लैंडन

3
अपनी सेटिंग्स "eslint.enable" में एसेट को सक्षम करने का प्रयास करें: सच। सुनिश्चित करें कि आपके पास विश्व स्तर पर कोई एस्लिंट स्थापित नहीं है। और configFile पथ को निकालने का प्रयास करें। यही कारण है कि मेरे पास मेरा vscode सेट है। जब मैं विश्व स्तर पर और स्थानीय स्तर पर स्थापित होता हूं, तो मैं बहुत सारी समस्याओं में भाग जाता हूं।
ईजे मेसन

4
मेरे लिए, मुद्दा यह था कि मैंने VSCode में ESLint एक्सटेंशन स्थापित नहीं किया था।
अतुलखत्री

72

यदि ESLint टर्मिनल में चल रहा है, लेकिन VSCode के अंदर नहीं है, तो यह शायद इसलिए है क्योंकि विस्तार स्थानीय और वैश्विक दोनों node_modulesफ़ोल्डरों का पता लगाने में असमर्थ है ।

सत्यापित करने के लिए, ज्ञात समस्या के साथ जावास्क्रिप्ट फ़ाइल खोलने के बाद पैनल को खोलने के लिए VSCode में Ctrl+ Shift+ दबाएँ । यदि यह दिखाता है- या- यदि टैब एक त्रुटि या एक चेतावनी दिखाता है जो संदर्भित करता है , तो VSCode को पथ का पता लगाने की कोशिश करने में समस्या हो रही है।UOutputeslintFailed to load the ESLint library for the document {documentName}.jsProblemseslint

यदि हाँ, तो इसे मैन्युअल रूप से eslint.nodePathVSCode सेटिंग्स ( settings.json) में कॉन्फ़िगर करके सेट करें । इसे पूर्ण पथ दें (उदाहरण के लिए, जैसे "eslint.nodePath": "C:\\Program Files\\nodejs",) - पर्यावरण चर का उपयोग करना वर्तमान में समर्थित नहीं है।
इस विकल्प को ESLint एक्सटेंशन पृष्ठ पर प्रलेखित किया गया है ।


धन्यवाद, कुछ घंटे बिताए पता लगा कि एस्लिंट ने अब विश्व स्तर पर vscode के साथ काम क्यों नहीं किया
आंद्रेई

सबसे अच्छा जवाब कभी।
निकोला मिहाजलोविस

मेरी भी यही समस्या थी। इससे मुझे इसे हल करने में मदद मिली, लेकिन मुझे settings.json फ़ाइल को बदलने की आवश्यकता नहीं थी। मैं Problemsटैब में गया और त्रुटि के बगल में प्रकाश बल्ब पर क्लिक किया और पॉप-अप विंडो चयनित अनुमति पर।
bshek

56

मेरे मामले में, जब से मैं टाइपस्क्रिप्ट को रिएक्ट के साथ उपयोग कर रहा था, तो फिक्स केवल ESLint को बताने के लिए था कि इन फाइलों को भी मान्य किया जाए। इसे आपकी उपयोगकर्ता सेटिंग में जाने की आवश्यकता है:

"eslint.validate": [ "javascript", "javascriptreact", "html", "typescriptreact" ],

3
मेरे लिए काम किया। (विंडोज पर)
एलिस

1
यहाँ टाइप रिएक्ट के साथ, मेरे लिए भी काम किया। धन्यवाद
GGAT

Windows पर React के साथ टाइपस्क्रिप्ट और यह मेरे लिए भी काम करता है।
पीटर बोम्मा

29

कार्यशील निर्देशिकाओं को कॉन्फ़िगर करना मेरे लिए इसे हल कर देता है, क्योंकि मेरे पास एक .eslintrcही विंडो में कई फाइलों के साथ कई परियोजनाएं हैं।

इसको अपने अंदर डालो .vscode/settings.json

"eslint.workingDirectories": [
    "./backend", 
    "./frontend"
],

इस आदमी को github पर धन्यवाद: https://github.com/microsoft/vscode-eslint/issues/696#issuecomment-542592372

पुनश्च: सभी उपनिर्देशिकाओं को सूचीबद्ध करने के लिए उपयोगी कमांड जिसमें एक .eslintrcछोड़कर / node_modules शामिल हैं:

find . .eslintrc | grep .eslintrc | grep -v node_modules


8

मेरे मामले में, मैंने VSCode में ESLint एक्सटेंशन स्थापित नहीं किया था, जो समस्या पैदा कर रहा था। क्या यह और यह फिर से काम करना शुरू कर दिया।


6

VSCode को पुनः आरंभ करना मेरे लिए काम कर गया।


5

चूंकि आप कमांड लाइन के माध्यम से सफलतापूर्वक लिंट करने में सक्षम हैं, इसलिए मुद्दा ESLint प्लगइन के कॉन्फ़िगरेशन में सबसे अधिक संभावना है ।

एक्सटेंशन को ठीक से स्थापित करने पर, प्रोजेक्ट (कार्यक्षेत्र) और उपयोगकर्ता (वैश्विक) परिभाषित सेटिंग्स.जॉन दोनों में सभी ESLint संबंधित कॉन्फ़िगरेशन संपत्तियों की जांच करें ।

कुछ चीजें हैं जो आपके विशेष मामले में गलत हो सकती हैं; मेरे लिए यह जावास्क्रिप्ट एक अन्य परियोजना में टाइपस्क्रिप्ट के साथ काम करने के बाद अक्षम हो गया था और मेरी वैश्विक सेटिंग। जेसन ने निम्नलिखित तलाश की:

"eslint.validate": [
  { "language": "typescript", "autoFix": true }
 ]

यहाँ से यह एक साधारण तय था:

"eslint.validate": [
  { "language": "javascript", "autoFix": true },
  { "language": "typescript", "autoFix": true }
]

यह इतना सामान्य है कि किसी ने वीएस कोड में काम नहीं कर रहे ESLint के बारे में सीधे फॉरवर्ड ब्लॉग पोस्ट लिखा । मैं बस जोड़ना चाहता हूं, स्थानीय कार्यक्षेत्र कॉन्फ़िगरेशन को ओवरराइड करने से पहले अपनी वैश्विक उपयोगकर्ता सेटिंग्स की जाँच करें।


मेरे लिए, आपके द्वारा निर्दिष्ट के अलावा, मुझे जोड़ना था "javascriptreact"और "typescriptreact"चूंकि मेरी परियोजना रिएक्ट का उपयोग करती है।
इलोजी

महान बिंदु। javascriptऔर javascriptreactकर रहे हैं मूलभूत मूल्यों लेकिन मुझे लगता है कि आप है की आवश्यकता होगी *scriptreactJSX फ़ाइलों के लिए वापस शामिल किया।
dmudro

4

यदि आप ESLint की वैश्विक स्थापना का उपयोग कर रहे हैं, तो आपके कॉन्फ़िगरेशन में उपयोग किए जाने वाले किसी भी प्लगइन्स को विश्व स्तर पर भी स्थापित किया जाना चाहिए। स्थानीय स्थापना के लिए बुद्धिमान की तरह। यदि आपने स्थानीय रूप से स्थापित किया है और स्थानीय रूप से ठीक से कॉन्फ़िगर किया गया है, फिर भी एस्लेंट काम नहीं कर रहा है, तो अपने आईडीई को पुनरारंभ करने का प्रयास करें। यह सिर्फ VScode के साथ मेरे साथ हुआ।


ओह! मुझे नहीं पता कि यह मेरे लिए क्यों नहीं हुआ। VSCode मेरी वेबपैक कॉन्फ़िगर फ़ाइल में परिभाषित मॉड्यूल उपनामों को नहीं पहचानता है और एस्लिंट त्रुटियों को प्रदर्शित कर रहा था, लेकिन कमांड लाइन से एस्लेंट को चलाना नहीं था। वीएसकोड को फिर से शुरू करने से समस्या ठीक हो गई!
जेरेड निप्प

4

मेरे मामले में ESLint मेरे कार्यक्षेत्र में अक्षम था। मुझे इसे vscode एक्सटेंशन सेटिंग में इनेबल करना था।


इसने मेरे लिए काम किया
richardwhatever

3

मुझे विंडोज़ पर भी ऐसी ही समस्या थी, हालाँकि कभी-कभी एस्किल्ट (विस्कोस में) काम करता था, कभी-कभी नहीं। बाद में मुझे एहसास हुआ कि यह थोड़ी देर के बाद ठीक काम करता है। यह इस मुद्दे से संबंधित था: एस्लिंट सर्वर उपलब्ध होने तक ~ 3-5 मिनट लगते हैं

वातावरण परिवर्तन चर सेट NO_UPDATE_NOTIFIER=1करने से समस्या हल हो गई


3

मैं यह प्रतिक्रिया दे रहा हूं कि आपने पहले ही स्थानीय प्रोजेक्ट रूट में .llintrc और .llintignore के साथ नियमों को परिभाषित कर लिया है । VSCode Eslint एक्सटेंशन इंस्टॉल करने के बाद कई कॉन्फ़िगरेशन जो सेटिंग में करने की आवश्यकता है। vscode के लिए json

eslint.enable: true
eslint.nodePath: <directory where your extensions available>

प्रोजेक्ट निर्भरता के रूप में एस्लिंट लोकल को स्थापित करना इस काम के लिए अंतिम घटक है। एस्लेंट को वैश्विक रूप से स्थापित नहीं करने पर विचार करें जो आपके स्थानीय स्थापित पैकेज के साथ संघर्ष कर सकता है।


3

मुझे यह कहते हुए एक समान समस्या थी कि यह '.. किसी भी फाइल को अभी तक मान्य नहीं किया गया है', लेकिन वीएस कोड समस्याओं के कंसोल में कुछ भी नहीं बताया गया था। हालांकि वीएस कोड को नवीनतम संस्करण (1.32.1) में अपग्रेड करने और फिर से शुरू करने के बाद, एस्लिंट ने काम करना शुरू कर दिया।


2

मेरे मामले में एस्लिंट को मान्य करने के लिए: "eslint.validate": ["जावास्क्रिप्ट", "जावास्क्रिप्टस्क्रिप्ट", "html", "टाइपस्क्रिप्ट",] में काम किया।


2

मैं कोड लिंचिंग और फ़ॉर्मेटिंग के लिए Use Prettier Formatter और ESLint VS कोड एक्सटेंशन का उपयोग करता हूं।

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

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

अब दिए गए कमांड का उपयोग करके कुछ पैकेज स्थापित करें, यदि अधिक पैकेजों की आवश्यकता है तो वे आपके लिए टर्मिनल में एक त्रुटि के रूप में इंस्टॉलेशन कमांड के साथ दिखाएंगे, कृपया उन्हें भी इंस्टॉल करें।

npm i eslint prettier eslint@^5.16.0 eslint-config-prettier eslint-plugin-prettier eslint-config-airbnb eslint-plugin-node eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks@^2.5.0 --save-dev

अब अपने प्रोजेक्ट होम डायरेक्टरी में एक नया फ़ाइल नाम .prettierrc बनाएं , इस फ़ाइल का उपयोग करके आप प्रीटियर एक्सटेंशन की सेटिंग्स कॉन्फ़िगर कर सकते हैं, मेरी सेटिंग्स नीचे हैं:

{
  "singleQuote": true
}

अब जैसे कि ESlint के लिए आप अपनी आवश्यकता के अनुसार इसे कॉन्फ़िगर कर सकते हैं, मैं आपको Eslint वेबसाइट पर जाने के लिए नियम ( https://eslint.org/docs/rules/ ) देखने की सलाह दे रहा हूं।

अब अपने प्रोजेक्ट होम डाइरेक्टरी में एक फ़ाइल नाम .eslintrc.json बनाएँ , उस फ़ाइल का उपयोग करके आप एसेलिंट को कॉन्फ़िगर कर सकते हैं, मेरे कॉन्फ़िगरेशन नीचे हैं:

{
  "extends": ["airbnb", "prettier", "plugin:node/recommended"],
  "plugins": ["prettier"],
  "rules": {
    "prettier/prettier": "error",
    "spaced-comment": "off",
    "no-console": "warn",
    "consistent-return": "off",
    "func-names": "off",
    "object-shorthand": "off",
    "no-process-exit": "off",
    "no-param-reassign": "off",
    "no-return-await": "off",
    "no-underscore-dangle": "off",
    "class-methods-use-this": "off",
    "prefer-destructuring": ["error", { "object": true, "array": false }],
    "no-unused-vars": ["error", { "argsIgnorePattern": "req|res|next|val" }]
  }
}

2

मेरे लिए, मैंने गलती से ESLint को अक्षम कर दिया था जब इसके द्वारा कुछ संकेत दिखाया गया था।

नीचे दिए गए कदमों ने इसे मेरे लिए तय कर दिया

  1. Shift + Command + P और चुनें ESLint: Disabled ESLint
  2. बनाम बंद करो
  3. Shift + Command + P और चुनें ESLint: Show Output Channel

1

मेरे मामले में, यह काम नहीं कर रहा था क्योंकि मैंने प्रोजेक्ट में मोनोरेपो का केवल एक फ़ोल्डर जोड़ा था, भले ही मेरे पास था package.jsonऔर एक्सटेंशन कॉन्फ़िगर किया गया था। मैंने केवल तभी काम किया जब मैंने package.jsonवीएस कोड में पूरी परियोजना (जिसमें फ़ाइल समाहित की थी ) को जोड़ा ।


1

यदि आप एक पैकेज के रूप में एक परियोजना के साथ विकसित कर रहे हैं। पैकेज निर्भरता, सुनिश्चित करें कि आप चलाते हैं npm install। उसने मेरे लिए इसे हल कर दिया।


0

अपनी सेटिंग्स पर जाएं। json फ़ाइल, निम्न जोड़ें और, eslint.nodepath को ठीक करें। अपनी प्राथमिकताओं में इसे दर्जी करें।

 // PERSONAL
  "editor.codeActionsOnSaveTimeout": 2000,
  "editor.codeActionsOnSave": {
    "source.fixAll": true
  },
  "editor.fontSize": 16,
  "editor.formatOnSave": true,
  "explorer.confirmDragAndDrop": true,
  "editor.tabSize": 2,
  "eslint.codeAction.showDocumentation": {
    "enable": true
  },
  "eslint.nodePath": "C:\\{path}",
  "eslint.workingDirectories": ["./backend", "./frontend"],

0

मेरे मामले में, मेरे पास फ़ोल्डर के .eslintrc.jsonअंदर फ़ाइल थी .vscode। एक बार जब मैंने इसे रूट फ़ोल्डर में स्थानांतरित कर दिया, तो ESLint ने सही तरीके से काम करना शुरू कर दिया।


0

सामान्य मुद्दे

टर्मिनल Ctrl+ खोलें`

आउटपुट ESLint ड्रॉपडाउन के तहत , आपको उपयोगी डीबगिंग डेटा (त्रुटियां, चेतावनी, जानकारी) मिलते हैं।

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

उदाहरण के लिए, .eslintrc-.jsonइस त्रुटि को याद रखना: यहाँ छवि विवरण दर्ज करें

Error: ENOENT: no such file or directory, realpath

अगला, जांचें कि क्या प्लगइन सक्षम है: यहाँ छवि विवरण दर्ज करें

अंतिम, वी 2.0.4 के बाद से - eslint.validateसामान्य मामलों में अब आवश्यक नहीं ( पुरानी विरासत सेटिंग ):

eslint.probe= भाषा पहचानकर्ताओं के लिए एक सरणी जिसके लिए ESLint एक्सटेंशन को सक्रिय किया जाना चाहिए और फ़ाइल को मान्य करने का प्रयास करना चाहिए। यदि मान्यता प्रोबेड भाषाओं के लिए विफल हो जाती है, तो एक्सटेंशन चुप हो जाता है। चूक के लिए [ javascript, javascriptreact, typescript, typescriptreact, html, vue, markdown]।

विशिष्ट मुद्दा - पहली बार प्लगइन इंस्टालेशन

मेरा मुद्दा ESLint प्लगइन से संबंधित था "वर्तमान में ब्लॉक करें" यहाँ छवि विवरण दर्ज करेंनया / पहला इंस्टालेशन पर स्थिति बार (v2.1.14)।

ESLint प्लगइन संस्करण 2.1.10 (08/10/2020) के बाद से

जब कोई ESLint एक्सटेंशन पहली बार ESLint लायब्रेरी को लोड करने का प्रयास करता है और कोई अनुमोदन आवश्यक है, तो कोई मोडल संवाद नहीं दिखाया गया है। ESLint स्टेटस बार आइटम के बजाय ESLint स्टेटस आइकन में परिवर्तन यह दर्शाता है कि निष्पादन वर्तमान में ब्लॉक है।

status-bar(दाएं-नीचे कोने) पर क्लिक करें : यहाँ छवि विवरण दर्ज करें

इस पॉपअप को खोलता है:

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

स्वीकृत ==> Allows Everywhere

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

-या- आदेशों द्वारा:

ctrl+ Shift+ पी -ESLint: Manage Library Execution

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

"रिलीज़ नोट्स" के तहत यहां और पढ़ें:

https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.