migrate-oxfmt
PrettierまたはBiomeからOxfmtへのプロジェクト移行をガイドするスキルです。JavaScript/TypeScriptプロジェクトのフォーマッターをPrettierまたはBiomeからOxfmtに移行・変換・切り替えたい場合に使用してください。
description の原文を見る
Guide for migrating a project from Prettier or Biome to Oxfmt. Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's formatter from Prettier or Biome to Oxfmt.
SKILL.md 本文
このスキルは、JavaScriptおよびTypeScriptプロジェクトをPrettierまたはBiomeから Oxfmt へ移行するプロセスをガイドします。
概要
Oxfmtは高性能でPretterと互換性のあるコードフォーマッターです。Prettierのオプションのほとんどが直接サポートされています。
oxfmtに内蔵された自動化された移行ツールは、PrettierとBiomeの両方をソースとしてサポートしています。
ステップ1: 自動化移行ツールを実行
Prettierからの移行
npx oxfmt@latest --migrate prettier
このコマンドは以下の処理を行います:
- Prettierの設定ファイルを検索して読み込む(Prettierがサポートするすべての形式)
- 移行されたオプション付きで
.oxfmtrc.jsonを作成 .prettierignoreのパターンをignorePatternsに移行prettier-plugin-tailwindcssのオプションをsortTailwindcssに移行prettier-plugin-packagejsonを検出してsortPackageJsonを有効化
Biomeからの移行
npx oxfmt@latest --migrate biome
このコマンドは以下の処理を行います:
biome.jsonまたはbiome.jsoncを検索して読み込む- 移行されたオプション付きで
.oxfmtrc.jsonを作成 files.includesからの否定パターンをignorePatternsに移行- Biomeの2段階の設定(
formatter.*とjavascript.formatter.*)をoxfmtのオプションにマッピング
Biomeオプションマッピング:
| Biome | oxfmt |
|---|---|
formatter.indentStyle ("tab"/"space") | useTabs (true/false) |
formatter.indentWidth | tabWidth |
formatter.lineWidth | printWidth |
javascript.formatter.quoteStyle | singleQuote |
javascript.formatter.jsxQuoteStyle | jsxSingleQuote |
javascript.formatter.quoteProperties ("asNeeded") | quoteProps ("as-needed") |
javascript.formatter.trailingCommas | trailingComma |
javascript.formatter.semicolons ("always"/"asNeeded") | semi (true/false) |
javascript.formatter.arrowParentheses ("asNeeded") | arrowParens ("avoid") |
formatter.bracketSameLine | bracketSameLine |
formatter.bracketSpacing | bracketSpacing |
formatter.attributePosition ("multiline") | singleAttributePerLine (true) |
注釈(両方のソース共通):
.oxfmtrc.jsonが既に存在する場合は失敗します。再実行したい場合は最初に削除してください。- ソース設定が見つからない場合は、代わりに空の
.oxfmtrc.jsonを作成します。 overridesは両方のソースに対して自動移行できず、手動で変換する必要があります。
ステップ2: 生成された設定を確認
移行後、生成された .oxfmtrc.json を以下の主な違いについて確認してください:
printWidth
PrettierとBiomeのデフォルトは80、oxfmtのデフォルトは100です。移行ツールはソース設定で指定されていない場合、printWidth: 80 を設定します。80を保持するか、100に変更するかを決めてください。
サポートされていないオプション(Prettierのみ)
これらのPrettierオプションは移行中にスキップされます:
| オプション | ステータス |
|---|---|
endOfLine: "auto" | サポートされていません。明示的に "lf" または "crlf" を使用してください |
experimentalTernaries | JS/TSファイルではまだサポートされていません |
experimentalOperatorPosition | JS/TSファイルではまだサポートされていません |
sortPackageJson(Prettierのみ)
oxfmtではデフォルトで有効になっていますが、移行ツールは prettier-plugin-packagejson が検出されない限り無効にします。これを有効にするかどうかを確認してください。
注意: Oxfmtのソートアルゴリズムは prettier-plugin-packagejson と異なります。
embeddedLanguageFormatting(Prettierのみ)
埋め込み言語フォーマット(例:CSS-in-JS)は一般的に機能しますが、いくつかのフォーマットがPrettierと異なる場合があります。
overrides
overrides フィールドはPrettierまたはBiomeから自動移行できません。手動で変換してください:
{
"overrides": [
{
"files": ["*.md"],
"options": { "tabWidth": 4 }
}
]
}
ネストされた設定
Oxfmtはネストされた設定ファイル(例:サブディレクトリ内の別の .oxfmtrc.json)をサポートしていません。プロジェクトが1ディレクトリごとのPrettierまたはBiome設定を使用していた場合、ファイルグロブパターンを使用して overrides を使って統合するか、異なるワーキングディレクトリで1ディレクトリごとにoxfmtを実行してください。
Prettier互換のオプション
これらのオプションは同じ動作で直接転送されます:
tabWidth, useTabs, semi, singleQuote, jsxSingleQuote, quoteProps, trailingComma, arrowParens, bracketSpacing, bracketSameLine, endOfLine, proseWrap, htmlWhitespaceSensitivity, singleAttributePerLine, vueIndentScriptAndStyle
ステップ3: Oxfmt拡張機能を設定
Oxfmtはprettierで利用できない機能を提供します:
sortImports
インポートステートメントをソート、eslint-plugin-perfectionist/sort-imports にインスピレーションを受けています(デフォルトは無効):
{
"sortImports": {
"partitionByNewline": true,
"newlinesBetween": false
}
}
sortTailwindcss
prettier-plugin-tailwindcss を置き換えます。オプション名を変更して自動移行されます:
| Prettier(トップレベル) | oxfmt(sortTailwindcss.*) |
|---|---|
tailwindConfig | config |
tailwindStylesheet | stylesheet |
tailwindFunctions | functions |
tailwindAttributes | attributes |
tailwindPreserveWhitespace | preserveWhitespace |
tailwindPreserveDuplicates | preserveDuplicates |
その他の拡張機能
| オプション | デフォルト | 説明 |
|---|---|---|
insertFinalNewline | true | ファイルの最後に最終改行を追加するかどうか |
sortPackageJson | true | package.json のキーをソート。{ "sortScripts": true } で スクリプトもソート |
ステップ4: CIとスクリプトを更新
フォーマッターコマンドをoxfmtに置き換えます:
# Before (Prettier)
npx prettier --write .
npx prettier --check .
# Before (Biome)
npx biome format --write .
npx biome check .
# After
npx oxfmt@latest
npx oxfmt@latest --check
共通CLIオプション
| Prettier / Biome | oxfmt |
|---|---|
prettier --write . / biome format --write . | oxfmt(デフォルト: cwd, --write モード) |
prettier --check . / biome check . | oxfmt --check |
prettier --list-different . | oxfmt --list-different |
prettier --config path | oxfmt --config path |
prettier --ignore-path .prettierignore | oxfmt --ignore-path .prettierignore |
cat file | prettier --stdin-filepath=file.ts | cat file | oxfmt --stdin-filepath=file.ts |
ファイルタイプカバレッジ
- JS/TS: oxfmtによってネイティブにフォーマット
- TOML: ネイティブにフォーマット(taploを経由)
- CSS、HTML、YAML、Markdown、GraphQL等:
npx oxfmt使用時にPrettierに内部的に委譲
ヒント
- EditorConfig: Oxfmtは
useTabs、tabWidth、endOfLine、insertFinalNewline、printWidthについて自動的に.editorconfigを読み込みます。.oxfmtrc.jsonのオプションが優先されます。 - CI: CI においてフォーマットを強制するには
npx oxfmt@latest --checkを使用してください。 - LSP: エディター統合にはLanguage Server Protocolを経由して
oxfmt --lspを実行してください。 - スキーマサポート: エディターのオートコンプリートのために
.oxfmtrc.jsonに"$schema": "./node_modules/oxfmt/configuration_schema.json"を追加してください。 - Init: 移行なしでデフォルト
.oxfmtrc.jsonを作成するにはnpx oxfmt@latest --initを実行してください。
参考資料
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- oxc-project
- リポジトリ
- oxc-project/oxc
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/oxc-project/oxc / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。