ESLint:eslintrc 中出现意外的属性“缩进”

Aar*_*nke 5 indentation eslint visual-studio-code eslintrc

如此处所述,有一个用于缩进的 ESLint 属性,称为indent。该示例如下所示:

或者对于选项卡式缩进:

{
    "indent": ["error", "tab"]
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我将此确切的代码粘贴到我的.eslintrc文件中,VS Code 会将其显示为错误:

ESLint:.eslintrc 中的 ESLint 配置无效: - 意外的顶级属性“缩进”。。有关详细信息,请参阅“ESLint”输出通道。

我之前的文件.eslintrc已经有许多规则,并且这些规则没有打印任何错误。如果我添加"indent"到该列表或单独添加,它就会失败。

以下是 VS Code 中 ESLint 输出通道中打印的错误和堆栈跟踪:

[Error - 10:38:55 PM] ESLint stack trace:
[Error - 10:38:55 PM] Error: ESLint configuration in .eslintrc is invalid:
    - Unexpected top-level property "indent".
    at validateConfigSchema (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/shared/config-validator.js:286:15)
    at ConfigArrayFactory._normalizeConfigData (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/config-array-factory.js:469:9)
    at ConfigArrayFactory._loadConfigDataInDirectory (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/config-array-factory.js:445:33)
    at ConfigArrayFactory.loadInDirectory (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/config-array-factory.js:401:18)
    at CascadingConfigArrayFactory._loadConfigInAncestors (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:305:46)
    at CascadingConfigArrayFactory.getConfigArrayForFile (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:250:18)
    at CLIEngine.executeOnText (/home/aaronfranke/workspace/OddJobs/node_modules/eslint/lib/cli-engine/cli-engine.js:860:47)
    at /home/aaronfranke/.vscode/extensions/dbaeumer.vscode-eslint-1.9.1/server/out/eslintServer.js:1:60107
    at /home/aaronfranke/.vscode/extensions/dbaeumer.vscode-eslint-1.9.1/server/out/eslintServer.js:1:61116
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?这个选项是否无效?示例配置是否错误?我的ESLint 扩展有问题吗?VS Code 有问题吗?我使用的是 Ubuntu 18.04 Linux 64 位,VS Code 1.40.1,ESLint 扩展 1.9.1,并且eslint --versionv5.16.0.

Joh*_*her 8

不允许将此设置作为顶级属性,这意味着它必须嵌套在另一个属性中,即"rules". 所以你必须这样写:

{
    //... other stuff ...

    "rules": {
        "indent": [ "error", "tab" ]
    }
}
Run Code Online (Sandbox Code Playgroud)