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

时间:2019-11-15 03:52:26

标签: visual-studio-code eslint indentation eslintrc

here所述,缩进的ESLint属性称为indent。该示例如下所示:

  

或用于选项卡式缩进:

{
    "indent": ["error", "tab"]
}

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

  

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

我以前拥有的.eslintrc文件已经有很多规则,并且这些规则没有打印错误。如果我将"indent"添加到该列表中,或者单独添加,则失败。

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

[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

这是怎么回事?此选项以某种方式无效吗?示例配置错误吗?我的ESLint extension出问题了吗? VS Code有什么问题吗?我正在使用带有VS Code 1.40.1,ESLint扩展名为1.9.1的Ubuntu 18.04 Linux 64位,并且eslint --versionv5.16.0

1 个答案:

答案 0 :(得分:1)

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

{
    //... other stuff ...

    "rules": {
        "indent": [ "error", "tab" ]
    }
}