NodeJS eslint:错误解析错误:保留关键字“const”

b09cbbtk  于 2023-01-25  发布在  Node.js
关注(0)|答案(9)|浏览(461)

我从ESLint收到此错误:

error  Parsing error: The keyword 'const' is reserved

从这个代码:

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

我试过删除node_modules并重新安装所有的npm包(按照here的建议),但没有效果。

gywdnpxw

gywdnpxw1#

ESLint默认为ES5语法检查。
您可能希望覆盖到JavaScript的最新受良好支持的版本。
尝试将.eslintrc.json文件添加到您的项目中。

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

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

希望这能帮上忙。
编辑:我还找到了this example .eslintrc.json,这可能会有帮助。

btqmn9zl

btqmn9zl2#

你也可以添加这个inline而不是config,在你添加你自己的disable的东西之前把它添加到同一个文件中

/* eslint-env es6 */
/* eslint-disable no-console */

我案例是禁用一个文件,eslint-disable并不适用于我

/* eslint-env es6 */
/* eslint-disable */
ddhy6vgd

ddhy6vgd3#

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

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

hs1ihplo4#

更新-ESLint v7.30.0

通过ESLint v7.30.0,您可以使用latest而不是2017,并且它将启用最新的受支持ECMAScript版本。
"ecma版本":"latest"始终启用ESLint默认解析器中支持的最新ECMAScript版本。

  • .爱沙尼亚贸易中心*
"parserOptions": {
  "ecmaVersion": "latest"
}
yhxst69z

yhxst69z5#

如果使用可视化代码,一个选项是将其添加到settings.json文件:

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

nc1teljy6#

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

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

同样的错误,const是保留字。
问题是,我从你在更新中给出的链接创建了. eslintrc.js,但仍然得到了同样的错误。而且,我在.eslintrc.js中得到了一个解析错误:Unexpected token ':'.
就在这部分:

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

...
laawzig2

laawzig27#

我在更新时遇到了这个问题。我在项目中已经有了一个eslintrc.json。我只是在Visual Studio代码中关闭了我的项目,然后重新打开它,错误就消失了。它似乎是VS代码缓存。

uplii1fm

uplii1fm8#

我在**.eslintrc.json**中使用了accepted answer中提到的配置:

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

但这还不够,您还需要在**.eslintrc.json文件中将overrides重命名为overrideConfig**:

"overrideConfig": [  <-- after renaming
    {
        "files": [
            "*.ts"
        ],
        "parserOptions": {
            "project": [
                "tsconfig.json",
                "e2e/tsconfig.json"
            ],
            "ecmaVersion": "latest",
            "sourceType": "module",
            "createDefaultProgram": true
        },
        "env": {
            "es6": true
        }
    ...

当然,前提是在您的settings.json中省略了useEslintrc参数(或将其设置为true)

ukqbszuj

ukqbszuj9#

在我的例子中,它无法找到.eslintrc文件,所以我从node_modules/.bin复制到root。

相关问题