Migracja z ESLint i Prettier
Biome udostępnia dedykowane polecenia ułatwiające migrację z ESLint i Prettier.
Jeśli nie chcesz znać szczegółów, wystarczy uruchomić następujące polecenia:
biome migrate eslint --writebiome migrate prettier --writeMigracja z ESLint
Dział zatytułowany „Migracja z ESLint”Wiele reguł lintera Biome jest inspirowanych lub identycznych z regułami ESLint lub regułami wtyczek ESLint.
Obsługujemy niektóre wtyczki ESLint, takie jak TypeScript ESLint, ESLint JSX A11y, ESLint React i ESLint Unicorn.
Jednak Biome ma własną konwencję nazewnictwa swoich reguł.
Biome używa camelCaseRuleName, podczas gdy ESLint używa kebab-case-rule-name.
Ponadto Biome często wybiera różne nazwy, aby lepiej oddać intencję swoich reguł.
Źródło reguły można znaleźć na stronie opisującej daną regułę.
Możesz również znaleźć odpowiednik reguły Biome dla reguły ESLint, korzystając z dedykowanej strony.
Aby ułatwić migrację, Biome udostępnia podpolecenie biome migrate eslint.
To podpolecenie odczyta Twoją konfigurację ESLint i spróbuje przenieść jej ustawienia do Biome.
Podpolecenie obsługuje zarówno starszą, jak i płaską (flat) konfigurację.
Obsługuje pole extends starszej konfiguracji i ładuje zarówno współdzielone, jak i wtyczkowe konfiguracje.
W przypadku płaskich plików konfiguracyjnych podpolecenie będzie próbowało wyszukać tylko rozszerzenia JavaScript (js, cjs, mjs) do załadowania w Node.js.
Podpolecenie wymaga Node.js do załadowania i rozwiązania wszystkich wtyczek i extends skonfigurowanych w pliku konfiguracyjnym ESLint.
Podpolecenie migruje również .eslintignore.
Mając następującą konfigurację ESLint:
{ "extends": ["plugin:unicorn/recommended"], "plugins": ["unicorn"], "ignore_patterns": ["dist/**"], "globals": { "Global1": "readonly" }, "rules": { "eqeqeq": "error" }, "overrides": [ { "files": ["tests/**"], "rules": { "eqeqeq": "off" } } ]}I następującą konfigurację Biome:
{ "linter": { "enabled": true, "rules": { "recommended": true } }}Uruchom następujące polecenie, aby zmigrować konfigurację ESLint do 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 --writePodpolecenie nadpisuje początkową konfigurację Biome.
Na przykład wyłącza recommended.
W rezultacie otrzymujemy następującą konfigurację 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" } } } } ]}Na razie biome migrate eslint nie obsługuje konfiguracji zapisanej w YAML.
Domyślnie Biome nie migruje reguł inspirowanych.
Możesz użyć flagi CLI --include-inspired, aby je zmigrować.
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-inspiredNależy pamiętać, że prawdopodobnie nie uzyskasz dokładnie takiego samego zachowania jak ESLint, ponieważ Biome zdecydowało się nie implementować niektórych opcji reguł lub nieznacznie odchylić od oryginalnej implementacji.
Ponieważ ESLint bierze pod uwagę pliki ignorowania VCS, zalecamy włączenie integracji VCS w Biome.
Migracja z Prettier
Dział zatytułowany „Migracja z Prettier”Biome stara się jak najdokładniej dopasować do formatera Prettier.
Jednak Biome używa innych domyślnych ustawień dla swojego formatera.
Na przykład używa tabulatorów do wcięć zamiast spacji.
Możesz łatwo zmigrować do Biome, uruchamiając biome migrate prettier --write.
Mając następującą konfigurację Prettier:
{ "useTabs": false, "singleQuote": true, "overrides": [ { "files": ["*.json"], "options": { "tabWidth": 2 } } ]}Uruchom następujące polecenie, aby zmigrować konfigurację Prettier do 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 --writeW rezultacie otrzymujemy następującą konfigurację 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 } } ]}Podpolecenie wymaga Node.js do załadowania konfiguracji JavaScript, takich jak .prettierrc.js.
biome migrate prettier nie obsługuje konfiguracji zapisanej w JSON5, TOML lub YAML.
Ponieważ Prettier bierze pod uwagę pliki ignorowania VCS, zalecamy włączenie integracji VCS w Biome.
Copyright (c) 2023-present Biome Developers and Contributors.