ESLint / Nodejs:由于默认切换情况导致的错误linting

时间:2017-05-30 03:42:47

标签: javascript node.js eslint

在尝试使用ESLint验证我的.js文件时,我收到了一个意外的词法声明(无案例声明)错误。

c:\>eslint C:\modules\myFile.js

503:17  error  Unexpected lexical declaration in case block        no-case-declarations

以下是导致错误的代码

switch (type) {
case String(type.match(/.*test.*/i)):                        
        console.log('test')
        break;
default:
    console.log('error')
    return err;
}

vs-code中没有显示错误。 当我转换我的代码时:

switch (type) {
case String(type.match(/.*test.*/i)):                        
        console.log('test')
        break;
/*default:
    console.log('error')
    return err;*/
}

所有错误消失,所以我认为它必须脱离默认的案例块。

以下是我的esLint.rc:

{
    "root": true,
    "parserOptions": {
        "ecmaVersion": 6,
        "sourceType": "script"
    },
    "env": {
        "node": true,
        "browser": false
    },
    "extends": "eslint:recommended",
    "rules": {
        "semi": ["error", "always"],
        "indent": ["error", 4, {
            "VariableDeclarator": 2,
            "SwitchCase": 1,
            "MemberExpression": 1,
            "ArrayExpression": "first"
        }],
        "no-mixed-requires": "off",
        "no-restricted-imports": "off",
        "no-undef":"off",
        "no-console":2,
        "no-trailing-spaces": "error",
        "no-unused-vars": "warn"
    }
}

这可能是什么问题?据我所知,默认的ESLint规则有默认情况规则 no-default-enforced 规则。

1 个答案:

答案 0 :(得分:3)

这是一个棘手的问题,因为它不是你的想法。默认情况下没有{...}是问题所在。因此更改默认值:默认值:{...}将解决此问题。如果要关闭它,则必须删除eslint中的扩展名。

具体来说,这是由“延伸”:“eslint:recommended”

产生的

More information here