近日,Biome v1.7 正式发布!这个新版本提供了从 ESLint 和 Prettier 迁移的简单路径。它还引入了格式化程序和 linter 的实验性机器可读报告、新的 linter 规则和许多修复。
使用以下命令更新 Biome:
npm install --save-dev --save-exact @biomejs/biome@latest
npx @biomejs/biome migrate
从 ESLint 迁移
此版本引入了一个新的子命令 biome migrate eslint
。此命令将读取您的 ESLint 配置并尝试将其设置移植到 Biome。
该子命令能够处理旧配置文件和平面配置文件。它支持 extends
遗留配置领域并加载共享和插件配置,该子命令也会迁移 .eslintignore
。
给出以下 ESLint 配置:
{
"extends": ["plugin:unicorn/recommended"],
"plugins": ["unicorn"],
"ignore_patterns": ["dist/**"],
"globals": {
"Global1": "readonly"
},
"rules": {
"eqeqeq": "error"
},
"overrides": [
{
"files": ["tests/**"],
"rules": {
"eqeqeq": "off"
}
}
]
}
以及以下 Biome 配置:
{
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
}
}
运行 biome migrate eslint --write
以将您的 ESLint 配置迁移到 Biome。该命令会覆盖您的初始 Biome 配置。
例如,它禁用 recommended
会产生以下 Biome 配置:
{
"organizeImports": { "enabled": true },
"linter": {
"enabled": true,
"rules": {
"recommended": false,
"complexity": {
"noForEach": "error",
"noStaticOnlyClass": "error",
"noUselessSwitchCase": "error",
"useFlatMap": "error"
},
"style": {
"noNegationElse": "off",
"useForOf": "error",
"useNodejsImportProtocol": "error",
"useNumberNamespace": "error"
},
"suspicious": {
"noDoubleEquals": "error",
"noThenProperty": "error",
"useIsArray": "error"
}
}
},
"javascript": { "globals": ["Global1"] },
"overrides": [
{
"include": ["tests/**"],
"linter": { "rules": { "suspicious": { "noDoubleEquals": "off" } } }
}
]
}
该子命令需要 Node.js 加载并解析所有插件并 extends
在 ESLint 配置文件中配置。目前 biome migrate eslint
不支持用 YAML 编写的配置。
我们有一个专门的页面,列出了给定 ESLint 规则的等效 Biome 规则。我们处理一些 ESLint 插件,例如 TypeScript ESLint、ESLint JSX A11y、ESLint React 和 ESLint Unicorn。
有些规则与 ESLint 的对应规则相同,而其他规则则受到启发。默认情况下,Biome 不会迁移启发规则。您可以使用 CLI 标志 --include-inspired
来迁移它们。
从 Prettier 迁移
Biome v1.6 引入了子命令 biome migrate prettier
。
在 Biome v1.7 中,我们添加了对 Prettier 的 overrides
支持,并尝试将 glob 模式转换 .prettierignore
为 Biome 支持的 glob
。
在迁移过程中,Prettier 的重写被翻译为 Biome 的重写。考虑到以下 .prettierrc.json
{
"useTabs": false,
"singleQuote": true,
"overrides": [
{
"files": ["*.json"],
"options": { "tabWidth": 2 }
}
]
}
运行 biome migrate prettier --write
以将 Prettier 配置迁移到 Biome。这会产生以下 Biome 配置:
{
"formatter": {
"enabled": true,
"formatWithErrors": false,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf",
"lineWidth": 80,
"attributePosition": "auto"
},
"organizeImports": { "enabled": true },
"linter": { "enabled": true, "rules": { "recommended": true } },
"javascript": {
"formatter": {
"jsxQuoteStyle": "double",
"quoteProperties": "asNeeded",
"trailingComma": "all",
"semicolons": "asNeeded",
"arrowParentheses": "always",
"bracketSpacing": true,
"bracketSameLine": false,
"quoteStyle": "single",
"attributePosition": "auto"
}
},
"overrides": [
{
"include": ["*.json"],
"formatter": {
"indentWidth": 2
}
}
]
}
该子命令需要 Node.js 来加载 JavaScript 配置,例如 .prettierrc.js
。biome migrate prettier
不支持以 JSON5、TOML 或 YAML 编写的配置。
可读的报告
Biome 现在能够输出 JSON 报告,详细说明命令发出的诊断信息。您可以在检查代码库时发出报告:
biome lint --reporter=json-pretty .
目前,我们支持两种报告格式:json
和 json-pretty
。
请注意,报告格式是实验性的,将来可能会发生变化。请尝试此功能,并告知我们是否需要在报告中添加任何信息。
检查 git 暂存文件
Biome v1.5 添加了 --changed
选项,用于格式化和检查已更改的 Git 跟踪文件。
今天我们推出了一个新选项 --staged
,它允许您仅检查添加到 Git 索引的文件(暂存文件)。这对于检查要提交的文件是否已格式化和 linted 非常有用:
biome check --staged .
这对于编写您自己的预提交脚本非常方便。请注意,不会忽略已暂存文件上未暂存的更改。因此,我们仍然建议使用专用的预提交工具。
下一步进展
我们已经开始了 CSS 格式化程序和代码检查工作。面向插件系统的早期实施也正在进行中。我们的一些贡献者已经开始了 GraphQL 和 YAML 的初步工作。