【问题标题】:eslint: error Parsing error: The keyword 'const' is reservedeslint:错误解析错误:关键字'const'被保留
【发布时间】:2017-07-31 02:26:26
【问题描述】:

我从 ESLint 收到此错误:

error  Parsing error: The keyword 'const' is reserved

从此代码:

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

我尝试删除 node_modules 并重新安装所有 npm 包(如建议的 here),但无济于事。

【问题讨论】:

    标签: javascript node.js ecmascript-6 eslint


    【解决方案1】:

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

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

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

    希望这会有所帮助。

    编辑:我还发现了 this example .eslintrc 这可能会有所帮助。

    【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 这应该是 imo 接受的答案,更容易实现,因为您可能无法轻松编辑 eslint 配置,例如脚手架框架、组项目等
    • /* eslint-env es2020 */ 也可以使用。 eslint.org/docs/user-guide/configuring/language-options 全部列出。很好的答案,因为我只在 JS 配置文件上需要它,其他文件是带有专用解析器的 TypeScript。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        请在此文件 .eslintrc.js 中使用此语法。 如果它不存在,那么您必须创建一个。另外,请先通过编写这些步骤npm install --save-dev eslint,了解如何将 eslint 作为开发依赖项安装到当前项目的步骤 然后在项目根目录中创建 .eslintrc.js 文件。

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

        【讨论】:

          【解决方案6】:

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

          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
          },
          
          ...
          

          【讨论】:

            【解决方案7】:

            更新

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

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

            .eslintrc.json

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

            【讨论】:

              【解决方案8】:

              在我的情况下,它无法找到 .eslintrc 文件,所以我从 node_modules/.bin 复制到 root。

              【讨论】:

                【解决方案9】:

                我在更新时遇到了这个问题。我在项目中也有一个 eslintrc.json 。我刚刚在 Visual Studio Code 中关闭了我的项目并重新打开它,错误就消失了。看来 VS Code 缓存了。

                【讨论】:

                  猜你喜欢
                  • 2020-07-20
                  • 2016-06-30
                  • 2020-01-22
                  • 1970-01-01
                  • 2020-12-02
                  • 1970-01-01
                  • 2017-04-10
                  • 2023-01-11
                  • 2019-01-06
                  相关资源
                  最近更新 更多