Skip to content

Oxfmt

Oxfmt (/oʊ-ɛks-fɔːr-mæt/) — высокопроизводительный форматтер для экосистемы JavaScript.

Поддерживаемые языки

JavaScript, JSX, TypeScript, TSX, JSON, JSONC, JSON5, YAML, TOML, HTML, Angular, Vue, CSS, SCSS, Less, Markdown, MDX, GraphQL, Ember, Handlebars и др.

Подробности — в матрице совместимости.

Расчёт на масштаб

Oxfmt ориентирован на большие репозитории и CI: высокая пропускная способность и предсказуемая производительность.

Построен на стеке компилятора Oxc и избегает узких мест, типичных для других форматтеров.

По бенчмаркам Oxfmt примерно в ~30 раз быстрее Prettier и примерно в 2 раза быстрее Biome.

Всё необходимое встроено

Функции, для которых у Prettier часто нужны плагины:

Совместимость с Prettier

Oxfmt встраивается в существующие процессы на базе Prettier.

CLI следует соглашениям Prettier настолько, что скрипты и инструменты обычно почти не меняются (но умолчания и часть флагов могут отличаться).

Для JavaScript форматирование совпадает с Prettier. При миграции с новых версий Prettier расхождений быть не должно; любые отличия считаются багами.

Oxfmt проходит 100% conformance-тестов Prettier для JS и TS. Оставшиеся расхождения зафиксированы для команды Prettier, идёт сходимость поведения.

Дополнительные зависимости и конфигурация не обязательны.

Быстрый старт

sh
pnpm add -D oxfmt

Скрипты в package.json:

package.json
json
{
  "scripts": {
    "fmt": "oxfmt",
    "fmt:check": "oxfmt --check"
  }
}

Форматирование:

sh
pnpm run fmt

Проверка без записи:

sh
pnpm run fmt:check

Дальше

Справка