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 часто нужны плагины:
- сортировка импортов
- сортировка классов Tailwind CSS
- сортировка полей package.json
- встроенное форматирование (CSS-in-JS, GraphQL и т.д.)
Совместимость с Prettier
Oxfmt встраивается в существующие процессы на базе Prettier.
CLI следует соглашениям Prettier настолько, что скрипты и инструменты обычно почти не меняются (но умолчания и часть флагов могут отличаться).
Для JavaScript форматирование совпадает с Prettier. При миграции с новых версий Prettier расхождений быть не должно; любые отличия считаются багами.
Oxfmt проходит 100% conformance-тестов Prettier для JS и TS. Оставшиеся расхождения зафиксированы для команды Prettier, идёт сходимость поведения.
Дополнительные зависимости и конфигурация не обязательны.
Быстрый старт
pnpm add -D oxfmtСкрипты в package.json:
{
"scripts": {
"fmt": "oxfmt",
"fmt:check": "oxfmt --check"
}
}Форматирование:
pnpm run fmtПроверка без записи:
pnpm run fmt:check