Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

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オプションマッピング:

Biomeoxfmt
formatter.indentStyle ("tab"/"space")useTabs (true/false)
formatter.indentWidthtabWidth
formatter.lineWidthprintWidth
javascript.formatter.quoteStylesingleQuote
javascript.formatter.jsxQuoteStylejsxSingleQuote
javascript.formatter.quoteProperties ("asNeeded")quoteProps ("as-needed")
javascript.formatter.trailingCommastrailingComma
javascript.formatter.semicolons ("always"/"asNeeded")semi (true/false)
javascript.formatter.arrowParentheses ("asNeeded")arrowParens ("avoid")
formatter.bracketSameLinebracketSameLine
formatter.bracketSpacingbracketSpacing
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" を使用してください
experimentalTernariesJS/TSファイルではまだサポートされていません
experimentalOperatorPositionJS/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.*
tailwindConfigconfig
tailwindStylesheetstylesheet
tailwindFunctionsfunctions
tailwindAttributesattributes
tailwindPreserveWhitespacepreserveWhitespace
tailwindPreserveDuplicatespreserveDuplicates

その他の拡張機能

オプションデフォルト説明
insertFinalNewlinetrueファイルの最後に最終改行を追加するかどうか
sortPackageJsontruepackage.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 / Biomeoxfmt
prettier --write . / biome format --write .oxfmt(デフォルト: cwd, --write モード)
prettier --check . / biome check .oxfmt --check
prettier --list-different .oxfmt --list-different
prettier --config pathoxfmt --config path
prettier --ignore-path .prettierignoreoxfmt --ignore-path .prettierignore
cat file | prettier --stdin-filepath=file.tscat file | oxfmt --stdin-filepath=file.ts

ファイルタイプカバレッジ

  • JS/TS: oxfmtによってネイティブにフォーマット
  • TOML: ネイティブにフォーマット(taploを経由)
  • CSS、HTML、YAML、Markdown、GraphQL等: npx oxfmt 使用時にPrettierに内部的に委譲

ヒント

  • EditorConfig: Oxfmtは useTabstabWidthendOfLineinsertFinalNewlineprintWidth について自動的に .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

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: oxc-project · oxc-project/oxc · ライセンス: MIT