Biome 2 Beta Released |
Written by Ian Elliot | |||
Monday, 23 June 2025 | |||
The beta of Biome 2 has been released with improvements including support for custom lint rules using GritQL; support for domains in link rules; and multi-file analysis. Biome is a complete JavaScript toolchain that compiles and bundles JavaScript projects, lints and type-checks, runs tests, and can also format code. It is an official fork of the Facebook Rome project, and is maintained by the same core team of developers. Rome was Facebook's "all-in-one” solution for JavaScript and TypeScript development. The project (named after the saying that 'all roads lead to Rome') was described as a complete JavaScript toolchain that compiles and bundles JavaScript projects, lints and type-checks, runs tests, and can also format code. Rome's development was started by Sebastian McKenzie who is also the creator of Babel and Yarn, and development was then taken over by the React Native team at Facebook with the aim of eventually replacing tools such as ESLint and Prettier. However, it was never fully released, and was eventually discontinued as a Facebook project, at which point the development team at that point took over its development independently. Biome's aim is to provide a comprehensive set of tools for web development, and the beta of version 2 comes with an impressive set of significant updates, including support for custom lint rules using GritQL; support for domains in link rules; and multi-file analysis. The support for domains enables Biome to group lint rules by technology, framework, or domain, meaning a developer's default set of recommended lint rules will only include those that are relevant to their specific project, and the multi-file analysis means Lint rules can now apply analysis based on information from other files. Other changes include an enhanced version of Biome Assist so it can provide actions without diagnostics, such as sorting object keys. This is the first version to have support for Linter Plugins and while they are still limited in scope, they do allow for matching code snippets and reporting diagnostics on them. The team says they have plenty of ideas for making them more powerful, and will eagerly hear from their users on what they would like to see prioritised. The new support for Domains adds a new way to organise lint rules by technology, framework, or well, domain. At the moment, the team has identified four domains: rules related to Next.js, to React, to Solid.js, and rules related to testing, regardless of framework or library. You can enable and disable rules that belong to a domain together, as in the following code snippet: {
"linter": {
"domains": {
"test": "all", // all rules that belong to this domain are enabled
"react": "recommended", // only the recommended rules from this domain are enabled
"solid": "none" // rules related to Solid are disabled
}
}
}
The team says Domains go even further, as Biome will automatically inspect your package.json and determine which domains should be enabled by default. For instance, if you have react defined as one of your dependencies, the default setting for the react domain automatically becomes recommended. This should mean that Biome's total set of recommended rules should be most relevant to your specific project needs. Domains can also add global variables to the javascript.globals setting. This should make Biome even easier to set up. Multi-file analysis support has been added via a new file scanner that scans all the files in your project and indexes them, similar to what an LSP service might do in your IDE. The developers say this does mean that Biome has become slower for many projects, but they think the ability to do multi-file analysis is worth it. The HTML formatter has also been updated, so that it is ready for users to try out and start reporting bugs. The team says this is a huge step towards Biome fully supporting HTML-ish templating languages used in frameworks like Vue and Svelte. The HTML formatter only touches actual .html files for now, so no formatting of html in .vue or .svelte files yet. It also won't format embedded languages like JavaScript or CSS yet. It is currently able to parse the majority of Prettier's HTML tests, and format 46/124 of them correctly. There are several other improvements. The beta is available to try now. More InformationRelated ArticlesNode-RED 2.0 Adds Flow Debugger And Linter To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.
Comments
or email your comment to: comments@i-programmer.info |