【发布时间】:2019-12-15 15:31:15
【问题描述】:
我正在一个使用 React 和 Typescript 的项目中尝试 Prettier。但是我在配置多行 if / else 语句时遇到问题。
当我写作时:
if (x >=0) {
// Do something
}
else {
// Do something else
}
Prettier 将其重新格式化为:
if (x >=0) {
// Do something
} else {
// Do something else
}
我将此规则添加到我的 tslint 文件中:"one-line": false,但 Prettier 仍在格式化我的语句。
这是 Prettier 的核心规则,无法通过 tslint 配置更改还是我做错了什么?
我的 tslint.json 是:
{
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"rules": {
"prettier": true,
"interface-name": false,
"no-console": [
true,
"log",
"debug",
"info",
"time",
"timeEnd",
"trace"
],
"one-line": false
},
"rulesDirectory": [
"tslint-plugin-prettier"
]
}
我的 .prettierrc 文件是:
{
"trailingComma": "es5",
"printWidth": 80,
"semi": true,
"tslintIntegration": true,
"eslintIntegration": true,
"jsxSingleQuote": true,
"singleQuote": true
}
【问题讨论】:
-
Prettier 是一个固执己见的格式器,这意味着它不是可定制的,它旨在解决团队内部关于格式的无休止争论。
-
如果你想要更多的灵活性,除了它所防止的所有常见错误之外,ESLint 还可以自己创造奇迹!
-
我明白你的意思。我只是想,既然 Prettier 说单行错误来自
tslint,我可以更改它的配置并让它消失。 -
我同意。这很烦人!
-
@KonradViltersten 我同意! 耸耸肩 最后,不得不同时处理不同的项目,我认为管理我的期望比维护每个项目的繁重配置更容易,所以我屈服于 Prettier。我们仍然使用 ESLint,但格式留给 Prettier。此外,在我多年来使用的不同 IDE 中,ESLint 与 Prettier 的自动格式化集成参差不齐,而且 ESLint 变得更糟(不再维护插件等)。
标签: reactjs typescript visual-studio-code tslint prettier