Ответ 1
В настоящее время единственным способом использования функций ES6 и ES7 является использование Typescript.
С другой стороны, здесь вы можете видеть, что есть запрос функций для ES6 и ES7
Редактировать 3: Начиная с версии 0.4.0, синтаксис ES6 можно включить, добавив файл jsconfig.json
в папку проекта со следующим содержимым:
{
"compilerOptions": {
"target": "ES6"
}
}
Изменить 2: вы можете проголосовать за эту функцию в голосе пользователя
Есть ли способ "включить" ES6/ES7 в коде Visual Studio?
Изменить 1
Попробовал @sarvesh suggestion-overrode javascript.validate.target
и перезапустил vscode. Не помогло.
В настоящее время единственным способом использования функций ES6 и ES7 является использование Typescript.
С другой стороны, здесь вы можете видеть, что есть запрос функций для ES6 и ES7
Это довольно просто, в корне вашего проекта создайте файл jsconfig.json и напишите в нем этот объект:
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs"
}
}
"jshint.options": { "esversion": 6 }
Добавление к приведенным выше ответам...
В соответствии с Документами 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"
]
}
В противном случае вы можете использовать ESLint, чтобы выделить ошибку ES7 (с помощью парсера babel или других): VSCode Linter ES6 ES7 Babel linter
В качестве альтернативы вы можете использовать Flow вместо Typescript, который намного проще настроить и перенести на. Я написал небольшую статью о как настроить поток с VS-кодом.
Начиная с этой даты и в соответствии с 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 работает и без нее, это не так.
Надеюсь, что это поможет...
Если вы не хотите сохранять свой проект как .vscode
пространство, просто создайте каталог .vscode
в корневой папке вашего проекта и создайте файл settings.json
.
{
"settings": {
"jshint.options": {"esversion": 6}
}
}
Добавьте вышеуказанный json, перезапустите VSCode, и все готово!