2016-03-19 8 views
9

मैं क्रम में नोड jslint https://github.com/reid/node-jslint उपयोग करने के लिएjslint --edition = नवीनतम अप्रत्याशित ES6 सुविधा। स्थिरांक

मैं अपने NodeJS लिपि में एक स्थिरांक मिल गया है स्वच्छ मेरी कोड रखने के लिए कोशिश कर रहा हूँ, लेकिन jslint यह मान्य ES6 कोड नहीं है कहते हैं

Unexpected ES6 feature. 
const pdPersonsFilterId = process.argv[2]; // Line 10, Pos 0 

यहाँ आदेश मैं सांत्वना

jslint --edition=latest index.js 

में उपयोग https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const यह संभव वैश्विक स्थिरांक उपयोग करने के लिए के अनुसार है।

जेएसलिंट इस कोड को मान्य क्यों नहीं मानता है?

+0

es6 जावास्क्रिप्ट का 'नवीनतम कार्य संस्करण' नहीं है। – magreenberg

+0

@ मैग्रीनबर्ग: यह नहीं है? –

+0

नहीं, ब्राउज़र नई ईएस 6 सुविधाओं के साथ तेजी से नहीं बढ़ रहे हैं, वे अभी भी विकास में हैं। आप उन्हें विशिष्ट मामलों में उपयोग कर सकते हैं, लेकिन वेब तैयार नहीं हैं। – magreenberg

उत्तर

8

जेएसलिंट ES6 के साथ पर्याप्त खुश है; आपको बस यह बताना होगा कि आप ES6 का उपयोग कर रहे हैं। es6 अपने JSLint कॉन्फ़िगरेशन या अपनी फ़ाइल और लाभ के ऊपर निर्देश जोड़ें।

/*jslint es6 */ 
const pdPersonsFilterId = process.argv[2]; 

अब आपके द्वारा देखी गई चेतावनी दूर हो गई है।

JSLint's help से

:

यह सर्वव्यापकता तक पहुँचने के लिए ECMAScript [ES6] के छठे संस्करण के लिए समय लग सकता है। उन वातावरणों में नई सुविधाओं का उपयोग करना जो पूरी तरह से नहीं करते हैं, नए मानक को लागू करने में विफलता होगी। यही कारण है कि JSLint चेतावनियां देता है जब ES6 सुविधाओं का उपयोग किया जाता है। ईएस 6 की कुछ विशेषताएं अच्छी हैं, इसलिए जेएसलिंट ईएस 6 के अच्छे हिस्सों को ईएस 6 विकल्प के साथ पहचान लेगा। नए मानक के कार्यान्वयन अधिक स्थिर हो जाते हैं और बेहतर समझा जाता है, जेएसलिंट द्वारा मान्यता प्राप्त सुविधाओं का सेट बढ़ सकता है। ईएस 6 में संक्रमण पूरा होने के बाद, es6 विकल्प गिरा दिया जाएगा। [emph mine]

पर्याप्त उचित लगता है। तो जो आपने देखा वह सिर्फ आपको चेतावनी दे रहा था कि जो भी मिला है वह काम नहीं कर सकता है जहां ES6 समर्थित नहीं है, क्योंकि अभी यह बहुत सारे स्थान हैं। एक बार ES6 अधिक व्यापक है - या यदि आप स्पष्ट रूप से क्रॉकफ़ोर्ड को जानते हैं कि आप ES6 का उपयोग करना चाहते हैं - चेतावनी चली जाएगी/दूर जाएगी। (टीजे का मुद्दा यह हो सकता है कि, कम से कम नोड के साथ, चेतावनी को हटाने का समय अब ​​है।;^डी)

+3

@TJCrowder मुझे लगता है कि आपके पास [नोड रैपर] (https://github.com/reid/node-jslint) है जहां दोष है (वहां [इसके लिए कोई समस्या है] (https://github.com/reid/ नोड-जेएसलिंट/मुद्दे/147)), क्रॉकफोर्ड नहीं। दर्दनाक रूप से, ऐसा लगता है कि नोड रैपर अभी भी [ईएस 6 के लिए अक्टूबर 2015 से JSLint] का उपयोग करता है (https://github.com/reid/node-jslint/blob/master/lib/jslint-es6.js), जो नहीं करता 'es6' विकल्प है। क्रॉकफ़ोर्ड (afaik) जेएसलिंट के संस्करणों को छोड़कर ["कैनोलिक" ऑनलाइन संस्करण] (http://jslint.com) और [गिटहब पर कच्चा कोड] (https://github.com/douglascrockford/JSLint/ ब्लॉब/मास्टर/jslint.js)। – ruffin

+0

मुझे लगता है कि आप सही हैं। :-) मैं कल्पना नहीं कर सकता कि मैं उस पर क्यों नहीं आया। –

+0

रैपर में अब एक अद्यतन संस्करण है, fwiw - लेकिन आपको es6 कोड –

8

ESLint आज़माएं।

NPM पर बेहतर आंकड़े हैं, दस्तावेज़ीकरण शानदार है और इसका व्यापक रूप से उपयोग किया जाता है।

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