होम·एरर संदेश

eslint · बिल्ड और टाइप

संदेश

Parsing error: Unexpected token

इसका मतलब

ESLint उस फ़ाइल पर कोई नियम लगाने से पहले, वाक्य-रचना पढ़ने के चरण में ही रुक गया। कोड के वाक़ई टूटे होने से कहीं ज़्यादा बार इसका अर्थ है कि parser उस वाक्य-रचना को नहीं जानता — TypeScript फ़ाइल को डिफ़ॉल्ट parser से पढ़ना, JSX चालू न होना, या decorators और बहुत नई वाक्य-रचना पुराने parser को थमा देना। उस ठीक फ़ाइल पर npx eslint --print-config app.ts चलाने से दिख जाता है कि असल में कौन सा parser और कौन से parserOptions लागू हैं, इसलिए अनुमान से पहले वही देखें। TypeScript के लिए @typescript-eslint/parser चाहिए, और यदि उस फ़ाइल की जाँच ही नहीं होनी चाहिए तो उसे ignores में रखना सही उत्तर है।

सुधार

npx eslint --print-config app.ts
कौन देता है
eslint
बिल्ड और टाइप
10

build की त्रुटियाँ किसी औज़ार का चलने से पहले मना कर देना हैं, इसलिए प्रकट होते समय वे कुछ तोड़ती नहीं — पर वे दो सवाल पूछती हैं: क्या आप type या रास्ता असली रूप के अनुसार सुधारेंगे, या as any अथवा दमन-टिप्पणी से उस एक पंक्ति को पार करा देंगे — और यहीं पहली बार वे चीज़ें सामने आती हैं जो केवल आपकी मशीन पर सही हैं: अक्षरों के बड़े-छोटे रूप, extension, और environment variables।

एरर संदेश कैसे पढ़ें

  • पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
  • फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
  • संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
  • वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
  • कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।

अक्सर पूछे जाने वाले सवाल

Q. “Parsing error: Unexpected token” का क्या मतलब है?

ESLint उस फ़ाइल पर कोई नियम लगाने से पहले, वाक्य-रचना पढ़ने के चरण में ही रुक गया। कोड के वाक़ई टूटे होने से कहीं ज़्यादा बार इसका अर्थ है कि parser उस वाक्य-रचना को नहीं जानता — TypeScript फ़ाइल को डिफ़ॉल्ट parser से पढ़ना, JSX चालू न होना, या decorators और बहुत नई वाक्य-रचना पुराने parser को थमा देना। उस ठीक फ़ाइल पर npx eslint --print-config app.ts चलाने से दिख जाता है कि असल में कौन सा parser और कौन से parserOptions लागू हैं, इसलिए अनुमान से पहले वही देखें। TypeScript के लिए @typescript-eslint/parser चाहिए, और यदि उस फ़ाइल की जाँच ही नहीं होनी चाहिए तो उसे ignores में रखना सही उत्तर है।

Q. इसे कैसे ठीक करें?

npx eslint --print-config app.ts — चलाने से पहले ऊपर देख लें कि यह कमांड क्या फेंक देता है।

Q. यह कौन-सा औज़ार देता है?

eslint। यह बिल्ड और टाइप में आता है, और संदेश 4 शब्दों का है।

साथ आने वाले एरर