Joh*_*now 7 config node.js eslint
我在最新版本的Eslint中使用VScode。这是我第一次使用棉短绒。
使用制表符作为缩进时,我不断收到此掉毛错误:
严重性:“错误”消息:“预期缩进1个标签,但发现4个空格。(缩进)”位于:“ 4,5”来源:“ eslint”
这是我的配置文件
{
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"rules": {
"indent": [
"error",
"tab"
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
]
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么在显示缩进标签时会引发此错误。很明显,这是将我的1个制表符计算为4个空格,但是当我按下制表符进行缩进时,我不明白为什么这样做。
更新:原因是因为在VScode中使用ctrl + shift + i美化代码实际上将使用空格而不是制表符。这就是原因。
Ali*_*esh 29
如果您同时使用eslint和prettier,请勿通过{'indent': 'off'}在规则对象中使用来禁用缩进。为了保证你的代码风格的一致性,你必须使用这个规则。
解决方案:
这个问题可能是由于 eslint 和 prettier 冲突而发生的。尝试在文件中使用 eslint 的不同选项.eslintrc。
如果您将鼠标悬停在 vsCode 中的错误行,则在错误描述末尾,您可以单击该链接来查看 eslint 文档。
例如,如果indent文档位于此链接中:
对我来说,通过添加此行(对于三元表达式)解决了错误:
...
rules: {
indent: [
'error',
2,
{
SwitchCase: 1,
ignoredNodes: ['ConditionalExpression'], <-- I add this line
},
],
...
Run Code Online (Sandbox Code Playgroud)
您还可以尝试使用flatTernaryExpressionsoroffsetTernaryExpressions作为三元表达式。
小智 13
尝试在.eslintrc.js文件中禁用缩进
rules: {
'indent': 'off'
}
Run Code Online (Sandbox Code Playgroud)
这对我来说很好用
小智 10
在VSCODE中,转到菜单:
File / Preferences / Settings然后Text Editor(或仅在搜索设置框中搜索“标签”)
然后从以下设置中删除勾号:
Insert SpacesDetect Indentation另外,要使用默认的VSCode键盘快捷键自动设置文档格式,请使用:
Shift+ Alt+f
嗯,正是它所说的。您的配置中有“indent”:[“error”,“tab”],因此它需要制表符作为缩进。但发现你的文件中有4个空格。删除空格并在文件中放入制表符