visual-studio-code - 防止 Prettier(代码格式化程序)和 ESLint/TSLint 之间的冲突
问题描述
我正在 VS Code 中开发一个 Angular 项目,使用“Prettier”插件进行代码格式化,使用 ESLint/TSLint 插件进行标准执行。
我知道这不是一个“错误”,但我强烈喜欢干净的构建,并且喜欢尽可能删除警告。
groupMouseDown = d => {
...
}; <--- This semicolon is the issue
上面是 Typescript 中的一个函数,使用“胖箭头”语法,使函数是内联的。请注意,在该行的末尾,是一个分号。
我不是在这里开始争论分号是否应该在这里,网上有很多这样的。相反,我只需要处理它。
Prettier 被认为是一个“固执己见”的格式化程序,他们在这个问题上的立场是他们认为它应该在那里。这很好,但他们也拒绝添加不放在那里的选项,因此是“自以为是”的部分。
另一方面,linter 认为不应该有分号,因此他们将其标记为不必要的分号。到目前为止,我还没有找到不将其报告为警告的选项,除非我为每个案例都删除它。
所以,在一天结束的时候,我必须解决不同意的问题,让我别无选择,只是忽略这一点,做我想让他们做的事情,那就是一起玩得很好。
有没有其他人反对这个?有没有办法:1)仅在此特定情况下才停止更漂亮的添加分号,或者... 2)仅在此特定情况下停止 linter 将其报告为警告?
我不想告诉 Prettier 不要在需要的地方放置任何分号,我也不想告诉 linter 忽略所有不必要的分号。
解决方案
这里没有接受的答案,所以我将分享我的两分钱:
我完全同意@Josh 的观点,即你应该让 prettier 做它的事情并让 linter 同意它的风格选择。但是我不想依赖额外的插件,而且 TSLINT 文章有点太长了,所以这里是你需要调整的具体规则:
如果您使用的是 TSLINT,则可以将以下规则添加到您的tslint.json
文件中
"semicolon": [true, "always", "ignore-bound-class-methods"]
- 来源:tslint 文档
我(还)没有使用 ESLINT,所以我不知道 linter 是否抱怨这个用例,如果是,我没有找到任何处理它的选项
推荐阅读
- python - url映射到Django中查看函数的问题
- julia - 如何在 Julia 中按组生成随机整数
- node.js - Npm 命令提供 2 个输出:可能由 WSL 或删除 package.json 并重新安装引起
- python - 使用不同的地图同时映射多个列
- node.js - Node.js - 如何限制 Mongoose Schema Array 上的项目数量
- spring-boot - Spring Data JpaRepository 在使用 getById() 方法时会抛出 LazyInitializationException,但在使用 findById() 时不会
- javascript - 当表格太大时,拖放与香草JS奇怪地工作
- javascript - 如何从多个数组创建一个新数组
- p-value - 使用混叠系数引导 p 值问题
- laravel - 在 Laravel 中获取 api 之前检查是否有互联网连接