ESLint:let的第一个实例导致"意外令牌"错误

wis*_*lin 6 javascript ecmascript-6 eslint

我的javascript:

let foo = 'bar'
Run Code Online (Sandbox Code Playgroud)

为什么ESLint会回应以下内容?

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

? 1 problem (1 error, 0 warnings)
Run Code Online (Sandbox Code Playgroud)

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

我的.eslintrc文件:

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

Tri*_*ych 15

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

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

通过在配置中"es6": trueenv块中添加一行来实现:

.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"
        ]
    }
};
Run Code Online (Sandbox Code Playgroud)

这可以解决您的特定错误,但您很快就会看到有关未使用名称的错误.以下是我能找到的将通过你的eslint设置的最小源代码:

let.js

let foo = 'bar'

function main() {
  foo
}

main()
Run Code Online (Sandbox Code Playgroud)