Migre do ESLint e Prettier
O Biome fornece comandos dedicados para facilitar a migração do ESLint e do Prettier.
Se você não quiser saber os detalhes, apenas execute os seguintes comandos:
biome migrate eslint --writebiome migrate prettier --write
Migre do ESLint
Section titled “Migre do ESLint”Muitas regras do linter do Biome são inspiradas ou idênticas às regras do ESLint ou às regras de um plugin do ESLint.
Lidamos com alguns plugins do ESLint, como TypeScript ESLint, ESLint JSX A11y, ESLint React e ESLint Unicorn.
No entanto, o Biome tem sua própria convenção de nomenclatura para suas regras.
O Biome usa camelCaseRuleName
enquanto o ESLint usa kebab-case-rule-name
.
Além disso, o Biome muitas vezes optou por usar nomes diferentes para transmitir melhor a intenção de suas regras.
A fonte de uma regra pode ser encontrada na página que descreve a regra.
Você também pode encontrar a regra equivalente do Biome a partir de uma regra do ESLint usando a página dedicada.
Para facilitar a migração, o Biome fornece o subcomando biome migrate eslint
.
Este subcomando lerá sua configuração do ESLint e tentará portar suas configurações para o Biome.
O subcomando é capaz de lidar com os arquivos de configuração legacy e flat.
Ele suporta o campo extends
da configuração legacy e carrega tanto as configurações compartilhadas quanto as de plugins.
Para arquivos de configuração flat, o subcomando tentará procurar apenas por extensões JavaScript (js
, cjs
, mjs
) para serem carregadas no Node.js.
O subcomando precisa do Node.js para carregar e resolver todos os plugins e extends
configurados no arquivo de configuração do ESLint.
O subcomando também migra o .eslintignore
.
Dada a seguinte configuração do ESLint:
{ "extends": ["plugin:unicorn/recommended"], "plugins": ["unicorn"], "ignore_patterns": ["dist/**"], "globals": { "Global1": "readonly" }, "rules": { "eqeqeq": "error" }, "overrides": [ { "files": ["tests/**"], "rules": { "eqeqeq": "off" } } ]}
E a seguinte configuração do Biome:
{ "linter": { "enabled": true, "rules": { "recommended": true } }}
Execute o seguinte comando para migrar sua configuração do ESLint para o Biome.
npx @biomejs/biome migrate eslint --write
pnpm exec biome migrate eslint --write
bunx --bun biome migrate eslint --write
deno run -A npm:@biomejs/biome migrate eslint --write
yarn exec biome migrate eslint --write
O subcomando sobrescreve sua configuração inicial do Biome.
Por exemplo, ele desativa recommended
.
Isso resulta na seguinte configuração do 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" } } } } ]}
Por enquanto, o biome migrate eslint
não suporta configurações escritas em YAML.
Por padrão, o Biome não migra regras inspiradas.
Você pode usar a flag da CLI --include-inspired
para migrá-las.
npx @biomejs/biome migrate eslint --write --include-inspired
pnpm exec biome migrate eslint --write --include-inspired
bunx --bun biome migrate eslint --write --include-inspired
deno run -A npm:@biomejs/biome migrate eslint --write --include-inspired
yarn exec biome migrate eslint --write --include-inspired
Note que é improvável que você obtenha exatamente o mesmo comportamento do ESLint, porque o Biome optou por não implementar algumas opções de regras ou por se desviar ligeiramente da implementação original.
Como o ESLint leva em consideração os arquivos de ignorados do VCS, recomendamos que você habilite a integração com VCS do Biome.
Migre do Prettier
Section titled “Migre do Prettier”O Biome tenta corresponder ao formatador do Prettier o mais próximo possível.
No entanto, o Biome usa padrões diferentes para seu formatador.
Por exemplo, ele usa tabs para indentação em vez de espaços.
Você pode migrar facilmente para o Biome executando biome migrate prettier --write
.
Dada a seguinte configuração do Prettier:
{ "useTabs": false, "singleQuote": true, "overrides": [ { "files": ["*.json"], "options": { "tabWidth": 2 } } ]}
Execute o seguinte comando para migrar sua configuração do Prettier para o Biome.
npx @biomejs/biome migrate prettier --write
pnpm exec biome migrate prettier --write
bunx --bun biome migrate prettier --write
deno run -A npm:@biomejs/biome migrate prettier --write
yarn exec biome migrate prettier --write
Isso resulta na seguinte configuração do 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", "trailingCommas": "all", "semicolons": "asNeeded", "arrowParentheses": "always", "bracketSpacing": true, "bracketSameLine": false, "quoteStyle": "single", "attributePosition": "auto" } }, "overrides": [ { "include": ["*.json"], "formatter": { "indentWidth": 2 } } ]}
O subcomando precisa do Node.js para carregar configurações JavaScript como .prettierrc.js
.
biome migrate prettier
não suporta configurações escritas em JSON5, TOML ou YAML.
Como o Prettier leva em consideração os arquivos de ignorados do VCS, recomendamos que você habilite a integração com VCS do Biome.
Copyright (c) 2023-present Biome Developers and Contributors.