【问题标题】:ESLint: First instance of let results in "unexpected token" error [duplicate]ESLint:let的第一个实例导致“意外令牌”错误[重复]
【发布时间】:2017-04-14 00:34:04
【问题描述】:

我的javascript:

let foo = 'bar'

为什么 ESLint 响应如下?

~/index.js
  1:5  error  Parsing error: Unexpected token foo

✖ 1 problem (1 error, 0 warnings)

似乎无论在脚本中的哪个位置,第一个使用 let 设置变量的实例都会出现此错误。为什么??

我的 .eslintrc 文件:

module.exports = {
    "env": {
        "node": true
    },
    "extends": "eslint:recommended",
    "rules": {
        "indent": [
            "error",
            "tab"
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": [
            "error",
            "single"
        ],
        "semi": [
            "error",
            "never"
        ]
    }
};

【问题讨论】:

    标签: javascript ecmascript-6 eslint


    【解决方案1】:

    关于let在全局范围内被禁止的答案是错误的。没关系。

    问题是你需要让 eslint 知道你正在使用 es6 功能。

    通过在配置中的 env 块中添加 "es6": true 行来做到这一点:

    .eslintrc.js

    module.exports = {
        "env": {
            "node": true,
            "es6": true
        },
        "extends": "eslint:recommended",
        "rules": {
            "indent": [
                "error",
                "tab"
            ],
            "linebreak-style": [
                "error",
                "unix"
            ],
            "quotes": [
                "error",
                "single"
            ],
            "semi": [
                "error",
                "never"
            ]
        }
    };
    

    这修复了您的特定错误,但您很快就会看到有关未使用名称的错误。下面是我能找到的最少的源代码,它可以通过你的 eslint 设置:

    let.js

    let foo = 'bar'
    
    function main() {
      foo
    }
    
    main()
    

    【讨论】:

    • 谢谢!我使用“eslint --init”创建了 .eslintrc,并且对我使用 es6 的事实回答了“是”,所以奇怪的是它没有添加该行。
    【解决方案2】:

    用 let 声明的变量在其封闭块中声明之前是不可访问的 - 因此第一个元素将是未定义的,直到命中封闭块。如果您在全局命名空间中定义 foo,那么在循环中使用 let 总是会出现此错误。

    【讨论】:

      猜你喜欢
      • 2015-08-18
      • 2022-01-12
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      • 2017-12-15
      • 1970-01-01
      相关资源
      最近更新 更多