Есть ли способ включить поддержку синтаксиса ES6/ES7 в vscode?

Редактировать 3: Начиная с версии 0.4.0, синтаксис ES6 можно включить, добавив файл jsconfig.json в папку проекта со следующим содержимым:

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

Изменить 2: вы можете проголосовать за эту функцию в голосе пользователя


Есть ли способ "включить" ES6/ES7 в коде Visual Studio?

screenshot

Изменить 1

Попробовал @sarvesh suggestion-overrode javascript.validate.target и перезапустил vscode. Не помогло.

Ответ 1

В настоящее время единственным способом использования функций ES6 и ES7 является использование Typescript.

С другой стороны, здесь вы можете видеть, что есть запрос функций для ES6 и ES7

Ответ 2

Это довольно просто, в корне вашего проекта создайте файл jsconfig.json и напишите в нем этот объект:

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

Ответ 4

Добавление к приведенным выше ответам...

В соответствии с Документами VS Code..

Убедитесь, что вы разместили jsconfig.json в корневом проекте JavaScript, а не только в корне вашей рабочей области. Ниже представлен файл jsconfig.json, который определяет целевой объект JavaScript как ES6, а атрибут exclude исключает папку node_modules.

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

Вот пример с явным атрибутом файлов.

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

Атрибут files не может использоваться вместе с атрибутом exclude. Если оба они указаны, атрибут файлов имеет приоритет.

также попробуйте отредактировать свойство "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"
  ]
}

Ответ 5

В противном случае вы можете использовать ESLint, чтобы выделить ошибку ES7 (с помощью парсера babel или других): VSCode Linter ES6 ES7 Babel linter

Ответ 6

В качестве альтернативы вы можете использовать Flow вместо Typescript, который намного проще настроить и перенести на. Я написал небольшую статью о как настроить поток с VS-кодом.

Ответ 7

Начиная с этой даты и в соответствии с ESLint docs на VSCode Marketplace, включая файл конфигурации .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 linting работает и без нее, это не так.

Надеюсь, что это поможет...

Ответ 8

Если вы не хотите сохранять свой проект как .vscode пространство, просто создайте каталог .vscode в корневой папке вашего проекта и создайте файл settings.json.

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

Добавьте вышеуказанный json, перезапустите VSCode, и все готово!