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 --writeMigre 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 --writepnpm exec biome migrate eslint --writebunx --bun biome migrate eslint --writedeno run -A npm:@biomejs/biome migrate eslint --writeyarn exec biome migrate eslint --writeO 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-inspiredpnpm exec biome migrate eslint --write --include-inspiredbunx --bun biome migrate eslint --write --include-inspireddeno run -A npm:@biomejs/biome migrate eslint --write --include-inspiredyarn exec biome migrate eslint --write --include-inspiredNote 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 --writepnpm exec biome migrate prettier --writebunx --bun biome migrate prettier --writedeno run -A npm:@biomejs/biome migrate prettier --writeyarn exec biome migrate prettier --writeIsso 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.