近日,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 的初步工作。