eslint:error解析错误:保留关键字"const"

opi*_*ike 161 javascript node.js ecmascript-6 eslint

我从ESLint收到此错误:

error  Parsing error: The keyword 'const' is reserved
Run Code Online (Sandbox Code Playgroud)

从这段代码:

const express = require('express');
const app = express();
const _ = require('underscore');
Run Code Online (Sandbox Code Playgroud)

我已经尝试删除node_modules并重新安装所有npm软件包(如此处所示),但无济于事.

iam*_*jpg 250

ESLint默认为ES5语法检查.您将要覆盖最新的良好支持的JavaScript版本.

尝试将.eslintrc文件添加到项目中.在里面:

{
    "parserOptions": {
        "ecmaVersion": 2017
    },

    "env": {
        "es6": true
    }
}
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助.

编辑:我也发现这个例子.eslintrc可能有所帮助.

  • 这些选项在本官方文档中进行了解释:语言选项 - ESLint - https://eslint.org/docs/user-guide/configuring/language-options (3认同)
  • 抱歉,我认为我的目的只是提供官方文档 URL 以供参考,以帮助理解答案。 (2认同)

Nen*_*vic 18

更新 - ESLintv7.30.0

使用 ESLint v7.30.0,您可以使用latest代替2017,它将启用最新支持的 ECMAScript 版本。

"ecmaVersion": "latest" 始终在 ESLint 的默认解析器中启用最新支持的 ECMAScript 版本。

.eslintrc.json

"parserOptions": {
  "ecmaVersion": "latest"
}
Run Code Online (Sandbox Code Playgroud)


小智 15

您也可以添加此内联而不是配置,只需在添加自己的禁用内容之前将其添加到同一个文件中

/* eslint-env es6 */
/* eslint-disable no-console */
Run Code Online (Sandbox Code Playgroud)

我的情况是禁用文件并且 eslint-disable 不能单独为我工作

/* eslint-env es6 */
/* eslint-disable */
Run Code Online (Sandbox Code Playgroud)


Kha*_*aen 8

我使用了.eslintrc.js,并添加了以下代码。

module.exports = {
    "parserOptions": {
        "ecmaVersion": 6
    }
};
Run Code Online (Sandbox Code Playgroud)


Bjø*_*ten 6

如果使用 Visual Code,一种选择是将其添加到 settings.json 文件中:

"eslint.options": {
    "useEslintrc": false,
    "parserOptions": {
        "ecmaVersion": 2017
    },
    "env": {
        "es6": true
    }
}
Run Code Online (Sandbox Code Playgroud)


Ron*_*uss 6

如果这里的答案都没有帮助,我遇到了类似的问题,文件中缺少的内容.eslintrc.json如下:

{
 "overrides": [
    {
      // rest of file...

      "files": [
        "*.ts",
        "*.js" // <- this part
      ],

       // rest of file...
 }]
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!