110

jsconfig.json编辑 3:从 0.4.0 版本开始,可以通过将文件添加到项目文件夹中来打开 ES6 语法,其内容如下:

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

编辑 2:您可以在用户语音上投票支持此功能


有没有办法在 Visual Studio Code 中“打开”ES6/ES7?

截屏

编辑 1

尝试了@sarvesh 的建议 - 覆盖javascript.validate.target并重新启动 vscode。没有帮助。

4

8 回答 8

60

这很简单,在项目的根目录下创建一个 jsconfig.json 文件并将这个对象写入其中:

{
    "compilerOptions": {
        "target": "ES6",
        "module": "commonjs"
    }
}
于 2015-11-06T13:40:36.057 回答
48

这个链接帮助很大。将 jsconfig.json 文件添加到项目中并没有太大帮助,或者说它不是最好的解决方案。转到文件 > 首选项 > 设置。在 settings.json 文件中添加这一行:

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

.jshintrc此外,您还可以通过在项目的根目录中创建一个文件并添加此内容来为整个项目启用此设置。

{
  "esversion": 6
}
于 2017-09-17T10:35:56.633 回答
31

目前,使用 ES6 和 ES7 功能的唯一方法是使用Typescript

另一方面,在这里你可以看到有一个 ES6 和 ES7 的功能请求

于 2015-04-29T21:13:47.350 回答
5

添加到上述答案...

根据 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 属性一起使用。如果两者都指定,则文件属性优先。

也尝试编辑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"
  ]
}
于 2016-04-26T07:42:21.043 回答
1

否则,您可以使用 ESLint 突出显示 ES7 错误(使用 babel 解析器或其他):VSCode Linter ES6 ES7 Babel linter

于 2016-04-04T07:04:52.327 回答
0

截至目前,根据VSCode Marketplace 上的ESLint文档,在项目根目录中包含一个 .eslintrc 配置文件可以在 ESLint VSCode 扩展中启用 ES6 linting。

我的 .eslintrc 配置文件如下所示:

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

我在 node_modules 中通过 npm 安装了 eslint,我所知道的是,使用项目根文件夹中的 .eslintrc ES6 linting 可以工作,没有它,它不会。

希望这可以帮助...

于 2017-12-07T15:20:42.370 回答
0

或者,您可以使用 Flow 而不是 Typescript,这更容易设置和迁移。我写了一篇关于如何使用 VS Code 设置 Flow的小文章。

于 2016-09-23T20:47:38.723 回答
0

为了更方便。在您的文件夹中设置 jsconfig.json。

{
    "compilerOptions": {
        "target": "esnext"
    }
}
于 2021-04-24T07:25:29.747 回答