首页 > 解决方案 > 防止 Prettier(代码格式化程序)和 ESLint/TSLint 之间的冲突

问题描述

我正在 VS Code 中开发一个 Angular 项目,使用“Prettier”插件进行代码格式化,使用 ESLint/TSLint 插件进行标准执行。

我知道这不是一个“错误”,但我强烈喜欢干净的构建,并且喜欢尽可能删除警告。

  groupMouseDown = d => {
   ...
  }; <--- This semicolon is the issue

上面是 Typescript 中的一个函数,使用“胖箭头”语法,使函数是内联的。请注意,在该行的末尾,是一个分号。

我不是在这里开始争论分号是否应该在这里,网上有很多这样的。相反,我只需要处理它。

Prettier 被认为是一个“固执己见”的格式化程序,他们在这个问题上的立场是他们认为它应该在那里。这很好,但他们也拒绝添加不放在那里的选项,因此是“自以为是”的部分。

另一方面,linter 认为不应该有分号,因此他们将其标记为不必要的分号。到目前为止,我还没有找到不将其报告为警告的选项,除非我为每个案例都删除它。

所以,在一天结束的时候,我必须解决不同意的问题,让我别无选择,只是忽略这一点,做我想让他们做的事情,那就是一起玩得很好。

有没有其他人反对这个?有没有办法:1)仅在此特定情况下才停止更漂亮的添加分号,或者... 2)仅在此特定情况下停止 linter 将其报告为警告?

我不想告诉 Prettier 不要在需要的地方放置任何分号,我也不想告诉 linter 忽略所有不必要的分号。

标签: visual-studio-codeeslinttslintprettier

解决方案


这里没有接受的答案,所以我将分享我的两分钱:

我完全同意@Josh 的观点,即你应该让 prettier 做它的事情并让 linter 同意它的风格选择。但是我不想依赖额外的插件,而且 TSLINT 文章有点太长了,所以这里是你需要调整的具体规则:

如果您使用的是 TSLINT,则可以将以下规则添加到您的tslint.json文件中

  • "semicolon": [true, "always", "ignore-bound-class-methods"]
  • 来源:tslint 文档

我(还)没有使用 ESLINT,所以我不知道 linter 是否抱怨这个用例,如果是,我没有找到任何处理它的选项


推荐阅读