原文链接: biomejs.dev/blog/roadma…
Biome 是笔者觉得未来会很有使用场景的一个工具,我觉得就目前的维护力度以及规划来看,2025 年 Biome 会赢。
在前段时间,Biome 发布了 2025 的规划,以及对于 2024 年的一些回顾,我们可以来一起看看。
回顾: Biome 2024
2024 年对于 Biome 来说意义重大,这一年可以说是进展神速:
-
一共发布了4个 minor 级别的版本迭代,分别是从 1.6 到 1.9,迭代了大量很有用的 features:
- 新增
biome search
和biome explain
两个命令,使得biome migrate
命令得到了显著的拓展,使得用户从 ESLint 和 Prettier 迁移过来更加容易。 - 支持了 CSS 以及 GraphQL 文件的 format 以及 lint
- 部分支持了 Astro 、Svelte 以及 Vue 文件
- 支持了配置文件之间可以互相 extends,这对于 monorepo 以及大型项目组织会很有用
- 自定义 reporters (biomejs.dev/reference/r…) 可以实现更好的 CI 集成以及机器可读的日志输出
- 支持了
.editorconfig
配置 - 支持了无数条新的 lint 规则以及一些规则的修复和改进,这里特别要提到对于
useSortedClasses
(biomejs.dev/linter/rule…) 这一规则的支持,这标记着 Biome 已经初步开始支持了 Tailwind
- 新增
-
Biome 的维护人员(github.com/biomejs/bio… 2024年最初的 10 个增长到了 18 个(笔者很荣幸作为其中的一员)
-
Biome 在 OS Awards 2024(osawards.com/javascript/…) 中赢下了 “Productivity Booster”奖项(其中 Rspack 拿下同年 Breakthroungh of the year 奖项)
-
Biome 增加了一些新的 Sponsors (github.com/biomejs/bio… Biome 是一个完全的社区驱动项目,社区的 sponsors 对于 biome 来说显得尤其珍贵
-
在多个方面改进了对于 IDE 的支持:
- 新增了 Zed 拓展支持
- 对于 VS Code 拓展进行了全面的改造,目前处于预发布阶段
- IDEA 插件同样也有个大版本的更新,目前可以通过 nighltly channel 来使用
企业支持
Biome 将在 2025 年 1 月开始提供企业支持的方式(参考: biomejs.dev/enterprise/… Biome 开发中去。
Biome 2.0 规划
目前 Biome team 正在忙于 2.0 的开发,由于 Biome 仍然由社区志愿贡献者来维护,2.0 目前并没有预期的发布时间,但 Biome 2.0 将会带来这样的一些新特性:
-
Plugins: 插件系统是个长期要求的 features,Biome 在 2024 年 1 月份的一个 RFC (github.com/biomejs/bio… 。Biome 2.0 中会带来插件的一些能力: 用户可以通过编写插件的形式来创建自己的 lint 规则当用户使用 GritQL 语言开发的时候。
-
Domains: Domains 是一个配置功能,它可以帮助用户轻松的启用或者禁用掉与特定领域相关的所有规则,例如 React、Next.js 或者测试框架,它还允许 Biome 根据
package.json
中列出的依赖项自动启用推荐的特定领域的 lint 规则,具体可以参考: github.com/biomejs/bio… -
Monorepo Support: 虽然目前
biome.json
配置文件支持了extends
配置显著提升了对于 Monorepo 项目支持,但目前依旧存在比较多的薄弱环节。Biome 2.0 将会基于内部的ProjectLayout
能力来显著提升目前的 monorepo 支持架构,将会解决目前的大部分问题。 -
Suppressions: Biome 目前已经支持通过抑制注释
// biome-ignore
来抑制某些linter
诊断,在 Biome 2.0 中,添加了对于// biome-ignore-all
以及// biome-ignore-start/biome-ignore-end
注释的支持。 -
Multi-file analysis: Biome 2.0 支持了真正的多文件分析(以前都只支持从单个文件分析,没办法获取多个文件的上下文)。这意味着未来 Biome 的 lint 规则将可以从其他文件中查询到信息,这将会启用更强大的 lint 规则。
2025 roadmap
OK,下面就是 Biome 2025 年的 roadmap 介绍了,再次之前,需要强调的是: 因为 Biome 是一个完全由社区驱动的项目,所以这里依然没办法承诺做到以下的功能一定能完成。但这同样并不意味着 Biome 团队没有一份 2025 年想要实现的功能清单:
- HTML support: 如果不支持 html 的 formatter 以及 linter,那么对于一个 Web 工具链而言,这将会是不完整的,目前 Biome 团队已经在研究这一能力了: github.com/biomejs/bio…
- Embedded languages: 嵌入式语言比如在一个 JavaScript 文件中通过模版字符串插入 CSS 或者 GraphQL 代码片段、或者HTML 文件中的 JS 以及 CSS 代码,Biome 也应该能处理这些,目前 Biome 正在努力实现这一能力,这同样也应该会为 Astro、Svelte 和 Vue 提供比现在更好的支持
- Type inference: 类型推导甚至最早是 Biome 2024 的一个希望实现的能力,但由于 Biome 团队正忙于实现多文件分析等能力来作为类型推导能力的先决条件,甚至还有个初期版本的
noFloatingPromises
规则实现(参考: github.com/biomejs/bio…noFloatingPromises
的真实版本,并进一步涉足类型推导能力。 - .d.ts generation: 在讨论类型时,Biome 将会支持上第一个 transformation 能力: 基于 TS 源码生成
.d.ts
文件。当然,最开始只会基于开启了 Isolated Modules(www.typescriptlang.org/tsconfig/#i… TS 项目 - JSDoc support: 如果 Biome 可以支持类型推导能力,那么将 JSDoc 注释用作类型信息的来源也将是个不错的能力支持。
- Markdown support: 目前已经有一些进展来支持这个能力了(github.com/biomejs/bio…
- More plugins: 虽然 Biome 2.0 将推出在 GritQL 中创建 lint 规则的功能,但这只是冰山一角。我们知道我们的用户想要更多,我们当然有更多类型的插件的想法。我们将首先收集 2.0 版本的反馈,然后决定下一步将关注哪个插件领域。
你的支持
如果没有用户以及 Sponsors 在 2024 年给予的大力支持,那么 Biome 这个项目将不会是今天这个样子。
希望今年大家同样给给予 Biome 更多的支持,如果你想支持 Biome ,可以通过以下方式:
- 成为一名贡献者: 帮助我们开发这些能力(参考: github.com/biomejs/bio…)
- 赞助Biome: 请贵公司赞助我们:Biome 速度非常快,可以减少贵公司的 CI 时间、提高开发人员的工作效率并节省资金。赞助还可以为贵公司创造曝光度(赞助渠道: github.com/biomejs/bio…
- 雇用 Biome Contributor。Biome 是否缺少任何阻碍贵公司采用它的东西?您可以通过雇用我们来实现这一目标!任何雇用贡献者在 Biome 上工作 3 个月或更长时间的公司都会自动申请赞助福利(渠道: biomejs.dev/enterprise/…
- 提升文档质量: 编写用户指南或者帮助去翻译文档给一些非英文的开发者们(PR 到 github.com/biomejs/web…