'ESLint and Prettier indent conflict
I am using eslint and prettier (in vscode), and I configured the indent rule:
// .eslintrc
{
// other settings...
rules: {
"indent": ["error", 4] // 4 whitespace indent
}
}
// .prettierrc
{
// other settings...
"useTabs": false,
"tabWidth": 4 // 4 whitespace indent
}
It works well in other places. But in this case, two plugins have some conflict:
// format by prettier
const rules = func(() => {
const rule = {...};
return condition
? [
{
foo: rule.a,
bar: rule.b,
baz: rule.c
}
]
: [];
});
// correct code of eslint
const rules = func(() => {
const rule = {...};
return condition
? [
{
foo: rule.a,
bar: rule.b,
baz: rule.c
}
]
: [];
});
Prettier take 2 extra space to indent the object declare(and ]), so eslint throw some error like Expected indentation of x spaces but found x+2.
And when I try to remove the extra space, prettier will tip me Insert '··'(two whitespace).
I read eslint and prettier documents, but it seems have no solution about this.
I can turn off the rule in eslint to ignore this error, but have any better config to fix it?
Solution 1:[1]
The problem also is mentioned on a GitHub issue.
ESLint and Prettier have different indentation implementations and they will conflict with each other.
You should turn off ESLint indentation check when using prettier.
// .eslintrc
{
// other settings...
rules: {
"indent": "off"
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Reza Mohammadi |
