我从ESLint得到这个错误:

error  Parsing error: The keyword 'const' is reserved

从这段代码:

const express = require('express');
const app = express();
const _ = require('underscore');

我已经尝试删除node_modules并重新安装所有npm包(如这里所建议的),但没有效果。


当前回答

我在这部分代码中遇到了同样的问题:

const newComment = {
    dishId: dishId,
    rating: rating,
    author: author,
    comment: comment
};
newComment.date = new Date().toISOString();

同样的错误,const是一个保留字。

问题是,我从你在更新中给出的链接中创建了.eslintrc.js,仍然得到了相同的错误。此外,我在.eslintrc.js: Unexpected令牌':'中得到一个解析错误。

就在这部分:

"env": {
  "browser": true,
  "node": true,
  "es6": true
},

...

其他回答

如果使用Visual Code,一个选项是将其添加到设置中。json文件:

"eslint.options": {
    "useEslintrc": false,
    "parserOptions": {
        "ecmaVersion": 2017
    },
    "env": {
        "es6": true
    }
}

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

module.exports = {
    "parserOptions": {
        "ecmaVersion": 6
    }
};

我使用了.eslintrc.json中的配置,正如在接受的答案中提到的那样:

{
  parserOptions: {
    "ecmaVersion": "latest"
  },
  env: {
    "es6": true
  }
}

还需要在settings.json中添加:

"eslint.options": { "configFile": "eslintrc.json" }

ESLint默认为ES5语法检查。 您需要重写到最新的受良好支持的JavaScript版本。

尝试向项目中添加.eslintrc.json文件。里面:

{
    "parserOptions": {
        "ecmaVersion": "latest"
    },

    "env": {
        "es6": true
    }
}

希望这能有所帮助。

编辑:我还找到了这个例子.eslintrc.json,这可能会有所帮助。

更新- ESLint v7.30.0

在ESLint v7.30.0中,你可以使用latest而不是2017,它将启用最新支持的ECMAScript版本。

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

.eslintrc.json

"parserOptions": {
  "ecmaVersion": "latest"
}