当前位置: 首页 > news >正文

从eslint切换到biome你的Jetbrains下的Webstorm还习惯吗

目录

  • 1. 背景
  • 2. 了解biome
  • 3. biome真的有那么好用吗
  • 4. IDE的保存自动格式化
    • 4.1 Webstorm配置自动保存的触发条件:
    • 4.2 配置biome保存后格式化
  • 5. 保存后自动格式化的痛点
  • 6. 最终解决方法?

1. 背景

最近在重新学习一个React的开源项目,其中代码规范和格式化工具最开始用的是eslintprettier,后来换成了biome。猛地发现Webstorm双引号4缩进没有了报错提示,也没有了自动格式化和右键手动格式化,很不习惯,那就开始调教吧~

2. 了解biome

https://biomejs.dev/zh-cn/guides/getting-started/
在GitHub可以看到有18.5K的Star,而eslint目前有25.8K的Star。
好奇的看了下它们的tag开始时间,biome最早开始与2023年左右,而eslint开始于2013年,它们竟然相差10年!!!
为什么使用biome的开发者人数增速如此之快?我的第一印象是简单简单简单
在这里插入图片描述
在这里插入图片描述
对比去年和今年两个时间段学习那个React开源项目的package.json文件不难发现,使用eslint大概需要安装12个左右的不同的包,而biome只需要1个
在这里插入图片描述
在这里插入图片描述

3. biome真的有那么好用吗

我的第一感觉是并没有
单/双引号、2/4缩进IDE都没有任何报错或者警告提示信息。 会不会是我打开方式不对,IDE可能也需要什么相关的插件呢?是的,我后来下载了插件Biome
在这里插入图片描述
这样总算万事大吉了吧?然而单/双引号、2/4缩进IDE都没有任何报错或者警告提示信息。
不过biome.jsonlinter的rules相关配置都有了错误提示

"linter": {"enabled": true,"rules": {"style": {"noVar": "error"},"recommended": true,}},

怎么解决?又怎么格式化?

4. IDE的保存自动格式化

vscodewebstorm都提供了保存后自动格式化的功能,用eslint的时候大家可能都用过。

4.1 Webstorm配置自动保存的触发条件:

在这里插入图片描述
可以看出,目前只有两个条件

  1. IDE空闲一定的时间后则自动保存。
  2. 切换到其它APP或者内置终端。(说白了就是当前文件的光标失去焦点)

4.2 配置biome保存后格式化

打开设置,搜索biome,然后勾选这两个即可:
在这里插入图片描述
到这里,当触发自动保存后,也就触发了biome的自动格式化,勉强能用了

5. 保存后自动格式化的痛点

是的,上面只是勉强能用了。为什么?
我一直不喜欢甚至比较抵触用这个功能,原因就在于下面类似的例子:

// 当你输入
return (<><div><div/></>
)

然后切换界面到浏览器抄代码的时候

// 好了,代码格式化成这样了
return <div><div/>

类似这样的情况可能还有很多。所以我在Webstorm中使用Eslint的格式化一直是右键手动fix,像下面这样:
在这里插入图片描述

6. 最终解决方法?

自定义指令/右键快捷键/外部工具
只对单个文件在我想格式化的时候再执行格式化。
打开外部工具,配置如下
在这里插入图片描述
建议关闭打开工具输出的控制台,这样格式化几乎是无感的。上面的程序中的pnpm也可以换成npx效果是一样的。
这样在右击之后,就可以点击biome check格式化了。
在这里插入图片描述
右击太麻烦,还可以添加快捷键
在这里插入图片描述
至此,大功告成!!!
不过单/双引号、2/4缩进IDE都没有任何报错或者警告提示信息。 ,但是,手动或者自动格式化是生效的,会吧错误的缩进和引号纠正。有大佬知道怎么让单/双引号、2/4缩进IDE给出报错或者警告提示信息。 请帮忙告诉我吧。

相关文章:

  • 每日AI必读 - 2025年4月25日(晚报)
  • 4.25学习——文件上传之00截断
  • 人工智能与机器学习,谁是谁的子集 —— 再谈智能的边界与演进路径
  • 自学新标日第二十二课(复习)
  • 并发设计模式实战系列(7):Thread Local Storage (TLS)
  • 命令行指引的尝试
  • 初一试后担忧
  • 在虚拟机中安装Linux详细教程
  • PyQt6基础_QTableWidget
  • 题目 3320: 蓝桥杯2025年第十六届省赛真题-产值调整
  • SpringCloud基于Eureka和Feign实现一个微服务系统
  • 【深度强化学习 DRL 快速实践】异步优势演员评论员算法 (A3C)
  • 豆瓣图书数据采集与可视化分析(三)- 豆瓣图书数据统计分析
  • 基于ssm的小区物业管理系统(源码+数据库)
  • vue2实现Blod文件流下载
  • AI生成创作图片操作流程一分钟学会!
  • 多层pcb工厂哪家好?
  • Python数据分析案例72——基于股吧评论数据的情感分析和主题建模(LDA)
  • Linux:进程间通信---匿名管道
  • 影视配乐神器:专业级音乐库TOP榜
  • 三大上市猪企:前瞻应对饲料原材料价格波动
  • 案件发回重审,李在明参选韩总统之路再添波折
  • 奔驰一季度利润降四成,受美国加征关税影响放弃全年盈利展望
  • 广东省副省长刘红兵跨省调任湖南省委常委、宣传部长
  • 中国人保不再设监事会,国寿集团未再设置监事长职务
  • 证据公布!菲律宾6人非法登上铁线礁活动