
Biome,这个一体化的 JavaScript 工具链,已经发布了 2.0 Beta 版。Biome 2.0 Beta 在这个测试版中引入了许多新特性,使其更接近ESLint和Prettier,例如插件(plugin),用于编写自定义的 lint 规则,域(domain)用于按技术分组你的 lint 规则,以及改进的排序功能。
Biome 支持 JavaScript、TypeScript、JSX、TSX、JSON 和 GraphQL,并声称与 Prettier 相比速度提高了 35 倍。
虽然 ESLint 和 Prettier 长期以来一直是 JavaScript 和 TypeScript 项目的默认选择,但开发人员不得不维护多个配置、插件和解析器才能使这些工具协同工作。Biome 的目标是将所有这些功能整合到一个用 Rust 编写的高性能工具中。尽管目标明确,但与 ESLint 和 Prettier 相比,Biome 仍然缺少一些功能,这一点在Reddit上有所提及:
“我已经用 Biome 替换了 ESLint + Prettier,但它确实还不完整。缺少 YAML、GraphQL、导入排序和插件。”
Biome 2.0 版本旨在解决这些缺失的特性。插件将允许用户匹配自定义代码片段并报告诊断信息,这是扩展 Biome 用户 lint 规则的第一步,团队在他们的发布博客中表示,他们有“很多让它们变得更强大的想法”。
插件应该使用 GritQL 编写,GritQL是一种由GritIO创建的开源查询语言,用于搜索和修改源代码。可以通过在项目配置中添加对所有.grit 插件文件的引用来将插件添加到项目中。文档中指出,Biome 尚未支持所有的 GritQL 功能,并且有一个 GitHub问题跟踪特性支持的状态。
域(Domains)是按技术、框架或域组织所有 lint 规则的一种方式,目前有四个域:next、react、solid 和 test。可以在 biome 配置中控制整个域的规则。Biome 还会自动检查 package.json 文件,并确定哪些域应该默认启用。
改进的导入组织器引起了早期采用者的一些兴奋。这些改进包括组织器现在可以将来自同一模块或文件的导入捆绑在一行上。还添加了自定义排序配置,这提供了使用新的导入组织器进行自定义导入排序的功能。这方面的一个常见用例是能够在导入块的开始或结束处对类型导入进行分组。
Biome 为希望从 ESLint 和 Prettier 迁移到 Biome 的开发者提供了一个指南。它包括两个单独的命令,用于自动迁移 ESLint 和 Prettier。在 Prettier 的迁移指南中有一个注意事项,Biome 确实试图尽可能接近地匹配,但由于 Biome 的不同默认设置,可能会有所不同。
Biome 最初是从Rome分叉出来的,由开源社区创建和构建。从那时起,该项目在前 Rome 维护者和新社区成员的贡献下不断发展壮大。Biome 的 GitHub 存储库现在得到了积极的维护,项目也在不断发展。
Biome v2.0 Beta 的完整文档可在biomejs.dev上找到,包括规则参考和各种环境的设置说明。
原文链接:
评论