2024 年路线图
我们很高兴与大家分享核心贡献者和维护者们希望在 2024 年重点关注的内容。
¥We are thrilled to share what the Core Contributors and Maintainers would like to focus on in 2024.
我们想提醒你,Biome 是一个社区驱动的项目,因此我们只能承诺以下部分想法将会实现。
¥We want to remind you that Biome is a community-driven project, so we can only promise that some of the ideas outlined below will be shipped.
但是,如果你对项目的某些方面感兴趣,并且希望看到某些方面比其他方面开发得更快,你可以通过多种方式帮助我们:
¥However, if you’re excited about some aspects of the project, and you want to see some of them developed faster than others, you can help us in many ways:
-
参与项目和社区。帮助我们构建这些功能。
¥Be involved in the project and the community. Please help us to build those features.
-
赞助商我们。请贵公司赞助我们。Biome 速度极快,可以缩短贵公司的持续集成 (CI) 时间,从而节省成本。性能是我们使命的一部分。此外,赞助是贵公司很好的广告宣传方式。
¥Sponsor us. Ask your company to sponsor us. Biome is so fast that it can reduce your company’s CI times and save money. Performance is part of our mission. Plus, sponsorship is a good medium of advertisement for your company.
-
通过提供想法、示例或指南来改进我们的文档。翻译我们的文档,帮助我们让不精通英语的用户也能使用 Biome。
¥Improve our documentation with ideas, recipes, or guides. Translate our documentation and help us to make Biome available to people who aren’t proficient in English.
¥Preface
该项目尚处于起步阶段,无法与 Prettier、ESLint、Webpack、Vite、ESBuild 等巨头竞争。然而,最近的一些事件(赞助商、赏金挑战、Biome 是 Rome 的一个分支)表明用户对该项目很感兴趣,我们也向这些用户展示了我们拥有满足他们需求的工具。
¥The project is young and can’t compete against giants such as Prettier, ESLint, Webpack, Vite, ESBuild, etc. However, the recent events (sponsors, bounty challenge, Biome being a fork of Rome) showed that the users have interest in the project, and we showed those users that we have the tools to fulfil a need.
从 ESLint/Prettier 迁移小型项目很容易,但迁移大型代码库则具有挑战性且耗时;这是 Biome 的一个主要痛点。
¥Moving small projects from ESLint/Prettier is easy, but moving big code bases is challenging and time-consuming; this is a big friction point in Biome.
然而,用户的需求各不相同,因此只能满足部分需求。我们希望确保所有功能和对 秉承我们的理念 项目的贡献都能默认提供最佳体验。
¥Users have different needs, though, so it will only be possible to satisfy some of them. We want to ensure that all features and contributions to our project embrace our philosophy and provide the best experience by default.
主要关注字段
Section titled “主要关注字段”¥Main area of focus
-
帮助用户迁移到 Biome
¥Help users to move to Biome
-
扩展 Biome 的语言支持,以便 Biome 工具能够覆盖更广泛的 Web 生态系统。
¥Expand Biome’s language support so Biome tools can span more of the web ecosystem
-
深化 Biome 的现有功能,以提供更多功能
¥Deepen Biome’s existing capabilities to offer more functionalities
-
插件
¥Plugins
-
转换
¥Transformations
-
社区和内容
¥Community and content
帮助用户迁移到 Biome
Section titled “帮助用户迁移到 Biome”¥Help users to move to Biome
-
在我们的网站上为希望从 Prettier 迁移的用户提供指南(CLI 命令和配置)。
¥Offer guides on our website to users who want to migrate from Prettier (CLI commands and configuration)
-
在我们的网站上为希望从 ESLint 迁移的用户提供指南(CLI 命令和配置)。
¥Offer guides on our website to users who want to migrate from ESlint (CLI commands and configuration)
-
在我们的网站上提供一个版块,展示 ESLint 规则与我们规则的映射关系。
¥Offer a section on our website that shows a mapping of the ESLint rules to our rules
-
提供一些命令以简化过渡过程。
¥Offer commands to ease the transition
-
名为
biome migrate prettier的命令会读取.prettierrc和.prettierignore,并使用 Prettier 文件中的配置更新(或创建)biome.json文件。¥A command called
biome migrate prettierthat will read.prettierrcand.prettierignorewill update thebiome.jsonfile (or create it) with the configuration from the Prettier files. -
名为
biome migrate eslint的命令会读取 ESLint 的 JSON 配置和忽略文件。会有一些预期和限制。¥A command called
biome migrate eslintwill read the JSON configuration of Eslint and the ignore file. There will be expectations and limitations.
-
扩展 Biome 的语言支持
Section titled “扩展 Biome 的语言支持”¥Expand Biome’s language support
CSS 是我们下一个重点关注的语言,目前进展顺利。HTML 和 Markdown 将随后推出。请关注我们的 最新页面,了解我们的最新进展。
¥CSS is our next language of focus, and we are making good progress. HTML and Markdown will follow. Follow our up-to-date page to keep up with the progress of our work.
CSS 语言将支持大量工作和实验:CSS 格式化和代码检查,我们将移植一些 stylelint 的代码检查规则。交叉代码检查是一个新的实验字段。
¥The CSS language will enable much work and experimentation: CSS formatting and linting, and we will port some of the lint rules from stylelint. A new area of experimentation is cross-linting.
交叉代码检查的概念可以通过一个例子来解释:计算项目中定义的 CSS 样式/类,并在 JSX/HTML 文件中未使用这些样式时警告用户。
¥The idea of cross-linting can be explained with an example: compute the CSS styles/classes defined in a project and warn a user when said styles aren’t used inside JSX/HTML files.
此外,我们解锁了另一个实验字段:嵌入式格式。
¥Plus, we unlock another area of experimentation, which is embedded formatting.
HTML 和 Markdown 将是我们接下来重点关注的语言。HTML 将使我们能够解析前端生态系统中流行的其他 HTML 变体:Vue、Svelte 和 Astro,这需要探索如何表示 HTML 的超级语言。
¥HTML and Markdown will be our next languages of focus. HTML will enable us to parse other variants of HTML that are popular in the frontend ecosystem: Vue, Svelte and Astro, and this would require some exploration of how to represent super languages of HTML.
深化 Biome 的现有功能,以提供更多功能。
Section titled “深化 Biome 的现有功能,以提供更多功能。”¥Deepen Biome’s existing capabilities to offer more functionalities.
-
项目分析和依赖解析
¥Project analysis and dependency resolution
-
类型系统
¥Type system
-
CLI
项目分析和依赖解析
Section titled “项目分析和依赖解析”¥Project analysis and dependency resolution
我们将提供代码检查规则来读取清单文件并检测诸如无效许可证之类的错误。
¥We will provide lint rules to read the manifest and detect errors such as invalid licenses.
通过项目解析,我们将能够提供更多代码检查规则,其中一些规则可以检测未使用的模块。
¥With project resolution, we will be able to provide more lint rules, some of which will be able to detect unused modules.
通过依赖解析,我们可以: - 例如 - 检测项目中未使用的依赖。
¥With dependency resolution, we can - for example - detect dependencies that aren’t used inside a project.
借助这一基础架构,我们的 LSP 将更加强大,并提供更多功能,例如:
¥With this infrastructure, our LSP is going to be more powerful and provide more features, for example:
-
重命名项目中的变量;
¥rename variables across a project;
-
导入自动补全;
¥auto-complete for imports;
-
内联类型
¥in-line types
¥Type system
构建像 TypeScript 这样功能齐全的类型系统是一项巨大的工程;因此,我们决定另辟蹊径,首先构建一个需要更严格类型定义的类型系统子集。这种方法可以让我们构建一些用户一直要求的关键代码检查规则。
¥Building a full-fledged type system such as TypeScript is a massive effort; that’s why we decided to take a different direction and start by building a subset of the type system that requires stricter typing. This approach would allow us to build some important lint rules that users have been asking for.
这将带来一个缺点:我们将不得不依赖更严格的代码和编译器最小的类型推断。
¥This will come with a downside: we will have to rely on a stricter code and minimal type inference from the compiler.
一旦我们有了可靠的规则,就可以逐步扩展类型系统的功能。
¥Once we have something we can rely on, we can slowly widen the capabilities of our type system.
命令行工具新增更多功能,例如:
¥More features for the command line tool, such as:
-
新增用于离线文档的
explain命令:¥Add the
explaincommand for offline documentation; -
允许以不同格式(JSON 等)导出输出。
¥Allow the output to be exported in different formats (JSON, etc.)
-
自动补全其他 shell,例如
zsh;¥Auto-completion for other shells such as
zsh; -
实现
--modified参数,允许格式化 - 例如 - 仅显示文档中已修改的行;¥Implement the
--modifiedargument, which allows to format - for example - only the modified lines of a document; -
公开 Biome 运行的指标,以便追踪可能的性能瓶颈;
¥Expose metrics for Biome’s operations and being able to track down possible performance bottlenecks;
¥Plugins
我们将探索插件,并设计出适合 Biome 的插件。Biome 与其他工具的不同之处在于,它是一个包含多个工具的工具链,因此我们需要跳出固有思维模式,提出一种可能与用户习惯的工具不同的设计。
¥We will explore plugins and come up with a design that fits Biome. Biome is different from other tools because Biome is a toolchain that has multiple tools in it, so we have to think out of the box and propose a design that might differ from the tools people are used to.
我们目前还不清楚 Biome 插件的具体形式,但插件应该能够利用 Biome 提供的所有工具。
¥We don’t know yet what a Biome’s plugin will look like, although a plugin should be able to tap all the tools that Biome offers.
我们将考虑的一些想法:
¥Some ideas that we will consider:
-
DSL
-
WASM
-
运行时
¥A Runtime
¥Transformations
转换和代码生成将是我们构建编译器的第一步。
¥Transformations and code generation will be our first steps towards our compiler.
我们将提供将 TypeScript 和 JSX 文件转换为 JavaScript 文件的功能。
¥We will provide the ability to transform TypeScript and JSX files into JavaScript files.
¥Community and content
Biome 拥有一个不断壮大的生态系统,包括官方的 VSCode 扩展、官方的 IntelliJ 扩展以及 Discord 机器人。我们希望扩展这些工具的功能,并欢迎任何愿意帮助我们的人。
¥Biome has a growing ecosystem, with an official VSCode extension, an official IntelliJ extension, and a Discord bot. We want to grow the features these tools provide and welcome anyone who wants to help us.
我们的社区正在稳步壮大,我们希望奖励每一位坚持下来并为 Biome 做出贡献的成员。在 Biome,我们重视每一份贡献,因此你无需精通 Rust 即可帮助我们。参与讨论、帮助我们完善功能或帮助其他人都属于贡献。如果你想继续为我们的生态系统做出贡献,我们也鼓励你使用 提名自己成为项目的维护者。
¥Our community is slowly growing, and we want to reward everyone who sticks around and contributes to Biome. At Biome, we value every contribution, so you don’t need to be proficient in Rust to help us. Even participating in discussions and helping us to shape our features or helping other people are considered contributions. If you’d like to continue contributing to our ecosystem, we also encourage you to nominate yourself as a maintainer of the project.
Biome 最近启用了自己的 YouTube 通道。我们将利用此渠道与社区分享学习内容。
¥Recently Biome started its own YouTube Channel. We will use this channel to share learning content with the community.
新徽标和主页
Section titled “新徽标和主页”¥New logo and homepage
同时,我们也想通过这篇博文正式宣布我们的新徽标、新主页以及网站的品牌重塑。
¥With this blog post, we also want to officially announce our new logo, homepage and rebranding of the website.
我们希望通过这个新徽标赋予项目新的意义。Biome 不再是 Rome 的分支,而是一个自给自足、蓄势待发的项目。
¥With this new logo, we want to give a different meaning to the project. Biome isn’t a fork of Rome anymore, but a self-sufficient project ready to bloom.
徽标中的三角形代表山脉。 - soil -,左下角的大括号形状代表海浪。 - 水。构建自给自足的生态系统,使其蓬勃发展,需要两个重要的要素。
¥The triangle of the logo represents the mountains - soil -, and the curly shape on the bottom left represents a wave of the ocean - water. Two elements that are important in creating a self-sufficient ecosystem, so it can thrive and grow.
Biome v2.1 中文网 - 粤ICP备13048890号