2015-12-12 8 views
30

ESLint Parsing error: Unexpected token = त्रुटि फेंक रहा है जब मैं अपने Es6 कक्षाओं को लिंट करने का प्रयास करता हूं। एस्लिंट में वसा तीर वर्ग विधियों को सक्षम करने के लिए मुझे क्या कॉन्फ़िगरेशन पैरामीटर याद आ रहा है?वसा तीर कक्षा विधियों को अनुमति देने के लिए मैं ESLint को कैसे कॉन्फ़िगर कर सकता हूं

नमूना वर्ग:

class App extends React.Component{ 
    ... 
    handleClick = (evt) => { 
     ... 
    } 
} 

.eslint

{ 
    "ecmaFeatures": { 
    "jsx": true, 
    "modules":true, 
    "arrowFunctions":true, 
    "classes":true, 
    "spread":true, 

    }, 
    "env": { 
    "browser": true, 
    "node": true, 
    "es6": true 
    }, 
    "rules": { 
    "strict": 0, 
    "no-underscore-dangle": 0, 
    "quotes": [ 
     2, 
     "single" 
    ], 
    } 
} 
+1

आपके द्वारा पहले से शामिल 'तीरफंक्शन' को कवर करना चाहिए। यह एक असमर्थित मामला, एक बग या सम्मेलन शैली के खिलाफ –

+0

हो सकता है क्या यह ESLint है जो त्रुटि या ट्रांसलेटर को फेंकता है? –

+1

क्या आपने बेबेल-एस्लिंट का उपयोग करने का प्रयास किया है? – FakeRainBrigand

उत्तर

17

का उपयोग आप (जैसे वर्ग तरीके के रूप में तीर के रूप में) प्रायोगिक सुविधाओं के उपयोग करना चाहते हैं आप के रूप में babel-eslint उपयोग करने की आवश्यकता को पढ़ने के बंधन के लिए एक पार्सर डिफ़ॉल्ट पार्सर (एस्प्री) प्रयोगात्मक सुविधाओं का समर्थन नहीं करता है।

+0

के बजाय क्लास इंस्टेंस से जुड़ा हुआ है यहां कुछ और विवरण https://medium.com/@chestozo/fixing-eslint-no-invalid- इस त्रुटि के लिए वसा-तीर-वर्ग-तरीकों-a56908ca8bb6 – chestozo

2

आपका नमूना ES6 मान्य नहीं है, इसलिए वहाँ eslint कॉन्फ़िगर करने के लिए यह

+0

@ बर्गि: ओह, प्रश्न और उत्तर दोबारा पढ़ें, मेरी टिप्पणी हटा दी गई। –

0

handleClick की एक विधि है अनुमति देने के लिए कोई रास्ता नहीं है कक्षा, इसलिए = आवश्यक:

class App extends React.Component{ 
    ... 
    handleClick(evt) { 
    ... 
    } 
} 

अगर यह स्थिर है आप कर सकते हैं:

class App extends React.Component{ 
    static handleClick = (event) => { } 
} 

और this या auto-bind decorator

+3

नहीं। 'handleClick = (event) => {}' बेकार 'हैंडलक्लिक() {} ' – Atombit

7

जो मैंने त्रुटि संदेश Parsing error: Unexpected token = में पढ़ा है उससे यह लिटर एक से अधिक पार्सर त्रुटि जैसा दिखता है।

मान लिया जाये कि आप अपने ESLint पार्सर के रूप में Babel आपकी जावास्क्रिप्ट संकलक/transpiler के रूप में और babel-eslint उपयोग कर रहे हैं, संभावना है कि यह कोलाहल वाक्य रचना, नहीं ESLint के बारे में शिकायत है।

समस्या तीर कार्यों के बारे में नहीं है लेकिन कुछ और प्रयोगात्मक (ES7 ??) है जो मुझे लगता है कि इसे property initializer या class instance field (या दोनों :)) कहा जाता है।

यदि आप इस नए वाक्यविन्यास/सुविधा का उपयोग करना चाहते हैं तो आपको बेबेल में preset-stage-1 को सक्षम करने की आवश्यकता है। इस प्रीसेट में syntax-class-properties प्लगइन शामिल है जो सिंटैक्स की अनुमति देता है।

संक्षेप:

  1. कोलाहल पूर्व निर्धारित स्थापित करें:

    npm install babel-preset-stage-1 
    
  2. अपने प्रीसेट की सूची में इस पूर्व निर्धारित जोड़ें (मैं तुम्हें लगता है कि पहले से ही es2015 और react प्रीसेट का उपयोग कर रहे हैं), या तो में यदि आप वेबपैक का उपयोग कर रहे हैं तो अपने .babelrc या अपने babel-loader क्वेरी फ़ील्ड में।

    "presets": ["es2015", "stage-1", "react"] 
    
5

मैं एक ही समस्या का सामना करना आज

आया और @dreyescat के जवाब मेरे लिए काम करता है।

डिफ़ॉल्ट रूप से, कोलाहल 3 प्रीसेट का उपयोग करता है: es2015, react, stage-2

Screenshot with "Parsing error: Unexpected token ="

तो अगर आप भी stage-1 पूर्व निर्धारित चयन करें, त्रुटि

Screenshot with no error

चला गया है

आप कर सकते हैं bebeljs.io साइट पर इसका परीक्षण करें

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

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