มีวิธีเปิดการสนับสนุนไวยากรณ์ ES6 / ES7 ใน vscode หรือไม่?


103

แก้ไข 3: ตั้งแต่เวอร์ชัน 0.4.0 สามารถเปิดใช้ไวยากรณ์ ES6 ได้โดยการเพิ่มjsconfig.jsonไฟล์ลงในโฟลเดอร์โปรเจ็กต์ที่มีเนื้อหาดังต่อไปนี้:

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

แก้ไข 2: คุณสามารถโหวตคุณสมบัตินี้ด้วยเสียงของผู้ใช้


มีวิธี "เปิด" ES6 / ES7 ใน Visual Studio Code หรือไม่

ภาพหน้าจอ

แก้ไข 1

พยายามคำแนะนำของ @ sarvesh - ลบล้างjavascript.validate.targetและเริ่ม vscode ใหม่ ไม่ได้ช่วย


3
คุณคิดว่าจะให้เป็นคำตอบแทนที่จะแก้ไขคำถามของคุณหรือไม่?
Jeroen Vannevel

คำตอบ:


28

ปัจจุบันวิธีเดียวที่จะใช้ ES6 และ ES7 ให้บริการคือการใช้typescript

ในทางกลับกันที่นี่คุณจะเห็นว่ามีคำขอคุณสมบัติสำหรับ ES6 และ ES7


1
Update: Looks ES6 จะวางจำหน่ายตั้งแต่เดือนกรกฎาคม 2015 - visualstudio.uservoice.com/forums/293070-visual-studio-code/…
ToddSmithSalter

ดูเหมือนดีทีเดียว ยังคงมีงานที่ต้องทำโดยทั่วไป
mzdv

2
ฉันใช้เวอร์ชันล่าสุด0.8.0แต่ยังเห็นข้อผิดพลาดในการระบายสีสำหรับฟังก์ชัน fat arrow ... ทำไม?
vanthome

@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": trueสำหรับนักตกแต่ง es7
Meirion Hughes

สิ่งที่เกี่ยวกับการนำเข้า ES6? การดีบัก / จุดพักจะใช้ได้หรือไม่? "module": "es2015"ดูเหมือนจะไม่ทำงานร่วมกับ
arve0

ไม่ได้ผลสำหรับฉันฉันมีปัญหาพวกนี้stackoverflow.com/questions/35110019/…
แจ็คว่าง

43

ลิงค์นี้ช่วยได้มาก การเพิ่มไฟล์ jsconfig.json ลงในโปรเจ็กต์ไม่ได้ช่วยอะไรมากหรือไม่ใช่ทางออกที่ดีที่สุด ไปที่ไฟล์> ค่ากำหนด> การตั้งค่า ในไฟล์ settings.json ให้เพิ่มบรรทัดนี้:

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

5

กำลังเพิ่มคำตอบด้านบน ...

ตามเอกสาร VS Code ..

ตรวจสอบให้แน่ใจว่าคุณวางjsconfig.json ไว้ที่รูทของโปรเจ็กต์ JavaScript ของคุณไม่ใช่แค่ที่รูทของพื้นที่ทำงานของคุณ ด้านล่างนี้คือไฟล์ jsconfig.json ซึ่งกำหนดเป้าหมาย JavaScript เป็น ES6 และแอตทริบิวต์ exclude จะไม่รวมโฟลเดอร์ node_modules

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

นี่คือตัวอย่างที่มีแอตทริบิวต์ Explicit files

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

ไม่สามารถใช้แอตทริบิวต์ files ร่วมกับแอตทริบิวต์ exclude หากระบุทั้งสองอย่างแอตทริบิวต์ files จะมีความสำคัญเหนือกว่า

ลองแก้ไขคุณสมบัติ "target" ใน 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"
  ]
}

สิ่งนี้หมายความว่าอย่างไร: "ที่รากของโครงการ JavaScript ของคุณไม่ใช่แค่ที่รากของพื้นที่ทำงานของคุณ"
Jared Christensen

ทำไมเทียบกับโค้ดรับไม่ได้.babelrcฯลฯ ทำไมต้องมีการกำหนดค่าซ้ำกันทั้งหมด grumbl
Stijn de Witt



0

ณ วันที่นี้และตามเอกสารESLintบน VSCode Marketplace รวมถึงไฟล์คอนฟิกูเรชัน. eslintrc ในรูทของโปรเจ็กต์เปิดใช้งาน ES6 linting ในส่วนขยาย ESLint VSCode

ไฟล์ config .eslintrc ของฉันมีลักษณะดังนี้:

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

ฉันติดตั้ง eslint ผ่าน npm ใน node_modules และสิ่งที่ฉันรู้ก็คือด้วย. eslintrc ในโฟลเดอร์รูทของโปรเจ็กต์ ES6 ใช้งานได้และไม่มีมันก็ไม่ได้

หวังว่านี่จะช่วยได้ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.