当“缩进”规则设置为“制表符”时,ESLint“意外的制表符”

Posted

技术标签:

【中文标题】当“缩进”规则设置为“制表符”时,ESLint“意外的制表符”【英文标题】:ESLint "Unexpected tab character" when "indent" rule set to "tab" 【发布时间】:2017-04-15 01:55:50 【问题描述】:

我将 ESLint 与 Airbnb plugin (eslint-config-airbnb) 和 Babel 解析器一起使用。我刚刚添加了使用 Tab 字符进行缩进而不是空格的额外规则。

这是我的.eslintrc


    "parser": "babel-eslint",
    "extends": "airbnb",
    "plugins": [
        "react",
        "jsx-a11y",
        "import"
    ],
    "rules":
        "indent": [2, "tab"]
    

现在每次缩进都会出现这个错误:

Error: Unexpected tab character

以防万一,我将 Atom IDE 与 autolinter 插件 linterlinter-eslint 一起使用。

【问题讨论】:

是否有伴随该错误的堆栈跟踪?它看起来不是一个正常的 linter 错误,尽管它可能来自解析器。 atom 显示错误,是的,它说的是关于 no-tabs 规则;) 【参考方案1】:

“no-tabs”规则在文件中的任何位置查找选项卡:代码、cmets 或其他任何内容。 这可能是另一个答案。

...
"rules": 
    ...
    "no-tabs": ["error",  "allowIndentationTabs": true ]
    ...

...

【讨论】:

【参考方案2】:

我自己回答,是因为 Airbnb 将规则 no-tabs 设置为 2 或错误,我只是禁用了它。


    "parser": "babel-eslint",
    "extends": "airbnb",
    "plugins": [
        "react",
        "jsx-a11y",
        "import"
    ],
    "rules":
        "indent": [2, "tab"],
        "no-tabs": 0
    

【讨论】:

仅供参考,标准的也会发生这种情况,而不仅仅是 airbnb 和 no-tab 规则有效。谢谢 谢谢!我将缩进规则设置为制表符,但不知道我必须专门禁用 airbnb 的“无制表符”。成功了,谢谢!

以上是关于当“缩进”规则设置为“制表符”时,ESLint“意外的制表符”的主要内容,如果未能解决你的问题,请参考以下文章

使用 ESLint `indent` 规则忽略模板文字中的缩进

Vue组件脚本缩进规则冲突

error Mixed spaces and tabs no-mixed-spaces-and-tabs

Visual Studio 缩进设置为两个空格而不是四个空格制表符

如何强制 Sublime Text 每个制表符缩进两个空格?

在 jsx 上使用 eslint 缩进