Biome 2025 roadmap 以及 2.0 规划

359 阅读6分钟

原文链接: biomejs.dev/blog/roadma…

Biome 是笔者觉得未来会很有使用场景的一个工具,我觉得就目前的维护力度以及规划来看,2025 年 Biome 会赢。

在前段时间,Biome 发布了 2025 的规划,以及对于 2024 年的一些回顾,我们可以来一起看看。

回顾: Biome 2024

2024 年对于 Biome 来说意义重大,这一年可以说是进展神速:

  • 一共发布了4个 minor 级别的版本迭代,分别是从 1.6 到 1.9,迭代了大量很有用的 features:

    • 新增 biome searchbiome 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…