क्या vscode में ES6 / ES7 सिंटैक्स समर्थन चालू करने का कोई तरीका है?


103

संपादित करें 3: संस्करण 0.4.0 में शुरू, ES6 सिंटैक्स jsconfig.jsonको निम्न सामग्री के साथ प्रोजेक्ट फ़ोल्डर में एक फ़ाइल जोड़कर चालू किया जा सकता है :

{
    "compilerOptions": {
        "target": "ES6"
    }
}

संपादन 2: आप उपयोगकर्ता की आवाज पर इस सुविधा के लिए मतदान कर सकते हैं


विजुअल स्टूडियो कोड में "ईएस 6 / ईएस 7" चालू करने का कोई तरीका है?

स्क्रीनशॉट

संपादित करें 1

@ सर्वेश का सुझाव javascript.validate.targetटाल दिया - ओवररोड किया और vscode को फिर से शुरू किया। मदद नहीं की।


3
क्या आप इसे अपने प्रश्न पर संपादित करने के बजाय एक उत्तर के रूप में रखना चाहेंगे?
जीरो वेनवेल

जवाबों:


28

वर्तमान में, ES6 और ES7 सुविधाओं का उपयोग करने का एकमात्र तरीका टाइपस्क्रिप्ट का उपयोग करना है

दूसरी ओर, यहां आप देख सकते हैं कि ES6 और ES7 के लिए एक सुविधा अनुरोध है


1
अपडेट: ऐसा लगता है कि ES6 जुलाई 2015 से उपलब्ध हो जाएगा - visualstudio.uservoice.com/forums/293070-visual-studio-code/...
ToddSmithSalter

यह बहुत अच्छा लगता है। फिर भी, सामान्य रूप से काम किया जाना है।
mzdv

2
मैं नवीनतम संस्करण का उपयोग कर रहा हूं, 0.8.0मुझे अभी भी वसा तीर के कार्यों के लिए त्रुटि रंग दिखाई दे रहा है ... क्यों?
वन्थोम

@vanthome को आपको उन फ़ाइलों के सरणी को इंगित करना होगा जिसे आप es6 के साथ लिखना चाहते हैं, लिंक की जाँच करें: code.visualstudio.com/Docs/languages/javascript
TlonXP

@TionXP क्या आप के साथ दृष्टिकोण मतलब है jsconfig.json? वैसे मैंने यह कोशिश नहीं की, लेकिन मैं उम्मीद करता हूं कि अगर मैं इसे विश्व स्तर पर सक्षम करूं तो मैं काम करूंगा। मैं VSCode फ़ाइल दर फ़ाइल नहीं बताना चाहता कि मैं ES6 का उपयोग करना चाहता हूँ।
vanthome

58

यह काफी आसान है, अपनी परियोजना की जड़ में एक jsconfig.json फ़ाइल बनाएँ और उसमें यह ऑब्जेक्ट लिखें:

{
    "compilerOptions": {
        "target": "ES6",
        "module": "commonjs"
    }
}

महान काम करता है, धन्यवाद! जाहिरा तौर पर वे इस गर्मी में vscode में शामिल थे: blogs.msdn.com/b/vscode/archive/2015/07/06/vs-code-es6.aspx तो ऊपर दिया गया उत्तर अब सही नहीं है।
टॉम

9
"experimentalDecorators": truees7 डेकोरेटर के लिए जोड़ें
Meirion ह्यूजेस

ES6 आयात के बारे में क्या? क्या डिबगिंग / ब्रेक पॉइंट काम करेंगे? के साथ काम करने के लिए प्रतीत नहीं होता है "module": "es2015"
arv0

यह मेरे लिए काम नहीं करता है मेरे पास इस समस्या के लोग हैं stackoverflow.com/questions/35110019/…
जैक खाली

43

इस लिंक से काफी मदद मिली। परियोजना में jsconfig.json फ़ाइल को जोड़ने से बहुत मदद नहीं मिली या इसके बजाय यह सबसे अच्छा समाधान नहीं है। फ़ाइल> प्राथमिकताओं> सेटिंग पर जाएं। सेटिंग में। Json फ़ाइल इस लाइन को जोड़ें:

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

5

उपरोक्त उत्तरों को जोड़कर ...

वीएस कोड के डॉक्स के अनुसार ।।

सुनिश्चित करें कि आप jsconfig.json को अपने जावास्क्रिप्ट प्रोजेक्ट के मूल में रखें न कि अपने कार्यक्षेत्र के मूल में। नीचे एक jsconfig.json फ़ाइल है, जो ES6 होने के लिए जावास्क्रिप्ट लक्ष्य को परिभाषित करती है और इसमें मौजूद विशेषता नोड_मॉडल फ़ोल्डर को बाहर करती है।

{
    "compilerOptions": {
        "target": "ES6"
    },
    "exclude": [
        "node_modules"
    ]
}

यहाँ एक स्पष्ट फ़ाइल विशेषता के साथ एक उदाहरण है।

{
    "compilerOptions": {
        "target": "ES6"
    },
    "files": [
        "src/app.js"
    ]
}

फ़ाइलें विशेषता का उपयोग बहिष्करण विशेषता के साथ संयोजन में नहीं किया जा सकता है। यदि दोनों निर्दिष्ट हैं, तो फ़ाइल विशेषता पूर्वता लेता है।

tsconfig.json में "लक्ष्य" संपत्ति को संपादित करने का भी प्रयास करें

{
  "compilerOptions": {
    "target": "es5",//es6
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}

इसका क्या मतलब है: "आपके जावास्क्रिप्ट प्रोजेक्ट की जड़ में और न सिर्फ आपके कार्यक्षेत्र की जड़ में"?
जारेड क्रिस्टेंसन

क्यों नहीं कर सकते हैं कोड बनाम बस उठा .babelrcआदि? सभी डुप्लिकेट कॉन्फ़िगरेशन क्यों? ग्रंबल
डे विट


0

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


0

इस तिथि के अनुसार और VSCode मार्केटप्लेस पर ESLint डॉक्स के अनुसार , प्रोजेक्ट के रूट में .eslintrc कॉन्फ़िगरेशन फ़ाइल सहित ESLint VSCode एक्सटेंशन में ES6 लाइनिंग सक्षम करता है।

मेरी .lintrc config फाइल इस तरह दिखती है:

extends:
  - standard
parser: babel-eslint
rules:
  object-curly-spacing: [ error, always ]
  react/prop-types: off
  space-before-function-paren: off

मेरे पास nl के माध्यम से नोड_मॉड्यूल में एस्केल्ट स्थापित है और मुझे पता है कि प्रोजेक्ट रूट फ़ोल्डर में .llintrc के साथ ES6 लाइनिंग काम करता है और इसके बिना, यह नहीं करता है।

उम्मीद है की यह मदद करेगा...

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