Чи є спосіб увімкнути підтримку синтаксису ES6 / ES7 у vscode?


103

Редагувати 3: Починаючи з версії 0.4.0, синтаксис ES6 можна ввімкнути, додавши jsconfig.jsonфайл у папку проекту із наступним вмістом:

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

Редагувати 2: Ви можете голосувати за цю функцію на голосі користувача


Чи є спосіб "включити" ES6 / ES7 у коді Visual Studio?

скріншот

Редагуйте 1

Випробуваний @ sarvesh пропозиція - javascript.validate.targetпереохолоджена і перезапущена vscode. Не допомогло.


3
Ви б не хотіли поставити це як відповідь, а не редагування свого питання?
Jeroen Vannevel

Відповіді:


28

В даний час єдиним способом використання функцій ES6 та ES7 є використання Typescript .

З іншого боку, тут ви можете бачити, що є запит на функції для ES6 та ES7


1
Оновлення: Здається, ES6 буде доступний з липня 2015 року - visualstudio.uservoice.com/forums/293070-visual-studio-code/…
ToddSmithSalter

Це здається досить непоганим. І все-таки є яка робота в цілому.
mzdv

2
Я використовую останню версію, 0.8.0я все ще бачу фарбування помилок для жирової стрілки ... чому?
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/…
jack blank

43

Це посилання дуже допомогло. Додавання файлу jsconfig.json до проекту не допомогло багато, а точніше, це не найкраще рішення. Перейдіть у файл> налаштування> налаштування. У файл settings.json додайте цей рядок:

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

5

Додавання до вищезазначених відповідей ...

Відповідно до Документів Кодексу VS ..

Переконайтесь, що ви розміщуєте jsconfig.json в корені проекту JavaScript, а не лише в корені робочої області. Нижче наведено файл jsconfig.json, який визначає, що ціль JavaScript має бути ES6, а атрибут виключення виключає папку node_modules.

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

Ось приклад з явним атрибутом файлів.

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

Атрибут файлів не може використовуватися разом з атрибутом виключення. Якщо вказано обидва, атрибут файлів має перевагу.

також спробуйте редагувати властивість "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, а не лише в корені вашої робочої області"?
Джаред Крістенсен

Чому проти коду не можна просто взяти .babelrcтощо? Чому всі дублюються конфігурації? grumbl
де Вітт



0

На цю дату та згідно з документами ESLint на ринку VSCode, включаючи файл конфігурації .eslintrc у корені проекту, передбачено можливість з'єднання ES6 у розширенні ESLint VSCode.

Мій конфігураційний файл .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 обшивка працює, і без неї це не відбувається.

Сподіваюся, це допомагає ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.