अगर मैं कॉन्स्ट का इस्तेमाल कर रहा हूं तो JSHint ने चेतावनी क्यों दी है?


316

यह कास्ट का उपयोग करते समय मुझे मिलने वाली त्रुटि है:

<error line="2" column="1" severity="warning" message="&apos;const&apos; is available in ES6 (use esnext option) or Mozilla JS extensions (use moz)." source="jshint.W104" />

मेरा कोड इस तरह दिखता है:

const Suites = {
    Spade: 1,
    Heart: 2,
    Diamond: 3,
    Club: 4
};

कोड ठीक काम करता है केवल JSHint मुझे हर बार चेतावनी दे रहा है।


मुझे पाठ में कोई सवाल नहीं दिखता, लेकिन शायद आपने पहले ही इसका जवाब दे दिया है "use esnext option":। और क्यों? क्या वह त्रुटि संदेश बिल्कुल स्पष्ट नहीं है? constजेएस (अभी तक) मानक नहीं है।
तैमू

5
या jshint के बजाय एस्लिन्ट का उपयोग करें
रक्का रेज

जवाबों:


557

ECMAScript 6 जैसी सुविधाओं पर भरोसा करते हुए const, आपको यह विकल्प सेट करना चाहिए ताकि JSHint अनावश्यक चेतावनी न जुटाए।

/ * jshint esnext: true * / ( संपादित करें 2015.12.29 : @ ओल्गा की टिप्पणियों को प्रतिबिंबित करने के लिए अद्यतन सिंटैक्स )

/*jshint esversion: 6 */

const Suites = {
    Spade: 1,
    Heart: 2,
    Diamond: 3,
    Club: 4
};

यह विकल्प, जैसा कि नाम से पता चलता है, JSHint बताता है कि आपका कोड ECMAScript 6 विशिष्ट सिंटैक्स का उपयोग करता है। http://jshint.com/docs/options/#esversion

2017.06.11 को संपादित करें : इस उत्तर के आधार पर एक और विकल्प जोड़ा गया ।

जबकि इनलाइन कॉन्फ़िगरेशन एक व्यक्तिगत फ़ाइल के लिए अच्छी तरह से काम करता है, आप .jshintrcअपने प्रोजेक्ट के रूट में एक फ़ाइल बनाकर और इसे वहां जोड़कर पूरे प्रोजेक्ट के लिए इस सेटिंग को सक्षम कर सकते हैं ।

{
  "esversion": 6
}

1
यह काम करता है ... यकीन है कि यह कुछ कमांड लाइन parm होगा! ... संकेत संकेत jshint लोक
स्कॉट स्टेंसलैंड

9
दस्तावेज़ अब कहता है, Warning This option has been deprecated and will be removed in the next major release of JSHint. Use esversion: 6 instead.हालांकि मेरा वेबस्टॉर्म अंतर्निहित प्लगइन नए विकल्प को नहीं पहचानता है। मैंने दोनों को निर्दिष्ट किया।
ओल्गा

5
मेरे लिए इसका .jshintrc नहीं .jshint, निश्चित नहीं है कि क्या jshint संस्करणों में अंतर हैं
Teknopaul

उफ़। आप सही हैं। सही किया।
जेम्स हिबर्ड

1
फिर अपने एटम को पुनः आरंभ करें, यदि यह मामला है
विटर ब्रागा

280

आप संपूर्ण समाधान के लिए इस सेटिंग को लागू करने के लिए निम्न सामग्री के साथ अपने ऐप के रूट में .jshintrc नामक एक फ़ाइल जोड़ सकते हैं :

{
    "esversion": 6
}

जेम्स के उत्तर से पता चलता है कि आप प्रत्येक फ़ाइल के /*jshint esversion: 6 */लिए एक टिप्पणी जोड़ सकते हैं , लेकिन यदि आपको कई फ़ाइलों को नियंत्रित करने की आवश्यकता है तो यह आवश्यक से अधिक काम है।


1
क्या इसका उपयोग करने के लिए कोई कॉन्फ़िगरेशन है? मेरा जिश्त सिर्फ इस बात की अनदेखी करता है कि अंदर क्या है .jshintrc
एतान यांग

1
@ ईशानयांग, नहीं, कोई अतिरिक्त विन्यास नहीं है। बस सुनिश्चित करें कि फ़ाइल JSHint द्वारा पाया जा सकता है। डॉक्स से:JSHint will start looking for this file in the same directory as the file that's being linted. If not found, it will move one level up the directory tree all the way up to the filesystem root. (Note that if the input comes from stdin, JSHint doesn't attempt to find a configuration file)
ज़ैनॉन

59

निर्यात विवरण का उपयोग करते समय मुझे यह चेतावनी मिली। मैं वीएस कोड का उपयोग कर रहा हूं और वेनलॉन्ग जियांग के समाधान के लिए एक समान दृष्टिकोण का उपयोग किया।

  1. उपयोगकर्ता सेटिंग
  2. जेएसहिंट कॉन्फ़िगरेशन
  3. "jshint.options": {} (संपादित करें)
  4. दोहरे उद्धरण चिह्नों का उपयोग करेंनिर्दिष्ट समय"esversion"

    या इस स्निपेट को उपयोगकर्ता सेटिंग में कॉपी करें:

    "jshint.options": {
      "esversion": 6,
    }

.jshintrcयदि आप अपने संपादक के लिए वैश्विक jshint सेटिंग्स कॉन्फ़िगर करना चाहते हैं, तो फ़ाइल बनाना आवश्यक नहीं है


8
धन्यवाद। दृश्य स्टूडियो कोड का उपयोग करने वालों के लिए निश्चित रूप से यहां सबसे अच्छा जवाब है। रेफरी के लिए, उपयोगकर्ता सेटिंग्स (मैक :) "कोड"> वरीयताएँ> सेटिंग्स के माध्यम से।
CopyJosh

1
इस अतिरिक्त समाधान के लिए धन्यवाद। यह बहुत ही उपयोगी है।
dprogramz

41

यदि आप VSCode का उपयोग कर रहे हैं:

1।

  • वरीयताओं पर जाएं -> सेटिंग्स ( cmd + ,)
  • jshint.optionsसर्च बार में टाइप करें
  • इस पर होवर करें और पेंसिल आइकन पर क्लिक करें
  • यह अब दाईं ओर संलग्न है।
  • "esversion": 6विकल्प ऑब्जेक्ट में जोड़ें ।

2।

या बस इसे अपनी उपयोगकर्ता सेटिंग में जोड़ें:

"jshint.options": {
    "esversion": 6
}

[अद्यतन] नई vscode सेटिंग्स

  • वरीयताओं पर जाएं -> सेटिंग्स ( cmd + ,)
  • jshintखोज में लिखें

VSCode सेटिंग्स

  • कदम के साथ जारी रखें 2.

32

मैंने इसे ठीक करने के लिए उम्र बिताई। हर समाधान 'सेटिंग विकल्प' के बारे में बात करता है। मुझे नहीं पता कि इसका क्या मतलब है। अंत में, मुझे लगा। आप बस फ़ाइल के शीर्ष पर एक टिप्पणी की गई पंक्ति शामिल कर सकते हैं /*jshint esversion: 6 */

समाधान


24
इस तरह से करने के साथ एकमात्र समस्या, जैसा कि मुझे पता चला है, यह है कि आपको टिप्पणी का उपयोग प्रत्येक फ़ाइल के शीर्ष पर जोड़ना होगा। एक बेहतर उपाय यह है कि आप नाम के ऐप के रूट फोल्डर में एक नई फाइल बनाएं .jshintrcऔर फिर फाइल में निम्न कोड जोड़ें{ "esnext": true }
जोश पिटमैन

17
{ "esnext": true }अब पदावनत हो गया है । अब आपको { "esversion": 6 }इसके बजाय उपयोग करना चाहिए ।
साइबरम

3
मुझे JSHint के एक आउट-डेटेड संस्करण का उपयोग करना चाहिए, क्योंकि केवल उपयोग "esnext": trueकरने से मैं इसे हल करने में सक्षम था। "esversion": 6कोई प्रभाव नहीं पड़ा।
जॉनकॉम

4
फिर 15:12 बजे अपने JShint 😉
सिरिल डचोन-डोरिस

18

आप esversion को निर्दिष्ट कर सकते हैं : 6 jshint विकल्प ऑब्जेक्ट के अंदर। कृपया छवि देखें। मैं grunt-contrib-jshint प्लगइन का उपयोग कर रहा हूं।

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


2
यह एक ग्रंट का उपयोग करने वालों के लिए काम करता है। इसे gruntfile.js में जोड़ें
जोइटी

1
धन्यवाद, मेरे लिए एक आकर्षण की तरह काम किया। कोई फ़ाइल (ओं) को नजरअंदाज करने की जरूरत नहीं है और विशेष पृष्ठ (एस) में esversioning के व्यक्तिगत कार्यान्वयन
sg28

3

जब आप ECMAScript 6 का उपयोग करना शुरू करते हैं तो यह त्रुटि आपके IDE द्वारा फेंक दी जाती है।

दो विकल्प उपलब्ध हैं:

यदि आपके पास केवल एक फ़ाइल है और es6 का उपयोग करना चाहते हैं, तो बस फ़ाइल के शीर्ष पर नीचे की रेखा जोड़ें।

/*jshint esversion: 6 */

या यदि आपके पास js फाइल की संख्या है या आप किसी भी फ्रेमवर्क (जैसे नोडज एक्सप्रेस) का उपयोग कर रहे हैं, तो आप .jshintrcअपनी रूट डायरेक्टरी में नाम की एक नई फाइल बना सकते हैं और फाइल में नीचे कोड जोड़ सकते हैं:

{
    "esversion": 6
}

यदि आप प्रत्येक प्रोजेक्ट के लिए es6 संस्करण का उपयोग करना चाहते हैं तो आप अपना IDE कॉन्फ़िगर कर सकते हैं।


2

अपने package.json में आप Jshint को इस तरह es6 का उपयोग करने के लिए कह सकते हैं

"jshintConfig":{
    "esversion": 6 
}

विजुअल स्टूडियो कोड के लिए अप्रैल, 2020 में स्वीकार किए गए उत्तर
आरिफमुस्तफा

1

यदि आप वेबस्टॉर्म का उपयोग कर रहे हैं और यदि आपके पास अपनी स्वयं की कॉन्फिग फ़ाइल नहीं है, तो बस EcmaScript.nextआराम करने के विकल्पों में सक्षम करें

सेटिंग्स | भाषाएँ और रूपरेखा | जावास्क्रिप्ट | कोड गुणवत्ता उपकरण | JSHint

यह प्रश्न देखें कि कैसे-कैसे-करें-मैं-ये-JSHint-ES6-त्रुटियाँ


1

यदि आप ग्रंट कॉन्फ़िगरेशन का उपयोग कर रहे हैं, तो आपको निम्न चरणों को करने की आवश्यकता है

जशिन में चेतावनी संदेश:

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

समाधान:

  1. Jshint विकल्प सेट करें और .jshintrc.js फ़ाइल को मैप करें

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

  1. उस फ़ाइल में .jshintrc.js फ़ाइल बनाएँ निम्नलिखित कोड जोड़ें
{  
  "एस्कॉर्शन": 6  
} 

इसे कॉन्फ़िगर करने के बाद, फिर से चलाएँ यह चेतावनी को छोड़ देगा,

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


0

इस सामग्री के साथ jshint_opts नामक एक फ़ाइल बनाएँ: {"एस्वर्सन": 6}

तो इस कमांड लाइन की तरह कुछ के साथ jshint आह्वान:

jshint --config jshint_opts lib / *। js


0

मैक पर SublimeText 3 के लिए:

  1. अपनी मूल निर्देशिका में (या जहाँ भी आप चाहें) .jshintrc फ़ाइल बनाएँ और एस्वर्सन निर्दिष्ट करें:
    # .jshintrc
    {
      "esversion": 6
    }
  1. आपके द्वारा अभी-अभी बनाई गई फ़ाइल के pwd का संदर्भ SublimeLinter उपयोगकर्ता सेटिंग्स (उदात्त पाठ> वरीयता> पैकेज सेटिंग> SublimeLinter> सेटिंग) में दें
    // SublimeLinter Settings - User
    {
      "linters": {
        "jshint": {
          "args": ["--config", "/Users/[your_username]/.jshintrc"]
        }
      }
    }
  1. छोड़ें और पुनः सबमिट करें SublimeText

0

2020 मई यहाँ एक सरल समाधान मैंने पाया है और यह, अपनी परियोजनाओं के सभी के लिए हल होगा खिड़कियों पर अपनी परियोजना कहीं अंदर ग है यदि: निर्देशिका, नई फ़ाइल .jshintrc बनाने और सहेजने सी निर्देशिका में इस .jshintrc फ़ाइल और लिखने को खोलने { "esversion": 6}और उस की यह। चेतावनी को दूर जाना चाहिए, वही डी निर्देशिका में काम करेगा

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

यहां छवि विवरण दर्ज करें हाँ आप इस सेटिंग को केवल अपने प्रोजेक्ट के रूट और ऐड में .jshintrc फ़ाइल बनाकर विशिष्ट प्रोजेक्ट के लिए भी सक्षम कर सकते हैं { "esversion": 6}


0

रूट dir .jshintrcमें फ़ाइल बनाएँ और वहाँ नवीनतम js संस्करण जोड़ें: और asi संस्करण: (यह अर्धविराम का उपयोग करने से बचने में आपकी सहायता करेगा)"esversion": 9"asi": true

{
    "esversion": 9,
    "asi": true
}

0

Dreamweaver CC 2018 में इसे ठीक करने के लिए, मैं वरीयताओं पर गया, नियम सेट संपादित करें - JS का चयन करें, परिवर्तन संपादित करें / लागू करें, "esnext" ढूंढें और झूठी सेटिंग को सत्य में बदल दें। घंटों शोध के बाद इसने मेरे लिए काम किया। आशा है कि यह दूसरों की मदद करता है।


-1

यदि उदात्त पाठ 3 का उपयोग कर रहे हैं:

  • प्राथमिकताएं -> पर जाएं सेटिंग
  • के तहत Preferences.sublime-सेटिंग-उपयोगकर्ता जोड़ने "esversion": 6

-2

इस त्रुटि को हल करने के लिए ड्रीमविवर के एक नए संस्करण में

  • संपादन-> वरीयता-> लाइनिंग पर जाएं
  • और गो-टू जे एस एडिट नियम सेट और पास्ट

    "jshintConfig": {"esversion": 6}

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