Skip to content

Oxfmt Beta

Мы рады объявить, что Oxfmt достиг статуса беты.

Oxfmt — форматтер на Rust, совместимый с Prettier, для экосистемы JavaScript. Цель — полная совместимость с современным стеком и резкий рост производительности.

В бенчмарках Oxfmt более чем в 30 раз быстрее Prettier и примерно в 3 раза быстрее Biome на первом запуске без кэша. Полные результаты — бенчмарк.

С декабрьской альфы мы расширили поддержку форматов файлов, добавили форматирование встроенных языков, сортировку импортов, интеграцию Tailwind CSS и множество улучшений стабильности и совместимости.

Oxfmt уже широко принят: среди проектов openclaw/openclaw, vuejs/core, vercel/turborepo, huggingface/huggingface.js, getsentry/sentry-javascript, npmx-dev/npmx.dev и многие другие.

Начало работы

Установите oxfmt как dev-зависимость:

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

Миграция с Prettier

Установка, миграция конфига и переформатирование одной командой:

sh
pnpm add -D oxfmt && pnpm oxfmt --migrate prettier && pnpm oxfmt

Полное руководство — Миграция с Prettier.

Промпт для ИИ

Можно скопировать этот промпт ассистенту для миграции проекта:

Migrate this project from Prettier to Oxfmt following https://oxc.rs/ru/guide/usage/formatter.html:
1. Install oxfmt and run `oxfmt --migrate prettier`
2. Update package.json scripts to use oxfmt
3. Update CI workflows to use `oxfmt --check`
4. Update lint-staged to use `oxfmt --no-error-on-unmatched-pattern`
5. Run oxfmt to reformat all files
6. Uninstall prettier and related packages
7. Update editor settings for oxfmt
8. Update CONTRIBUTING.md, AGENTS.md, or CLAUDE.md if they mention prettier

Подробнее — документация Oxfmt.

Главные новинки после альфы

100% совместимость с Prettier

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

Можно мигрировать с уверенностью в идентичном форматировании. Найденные случаи — репорт.

Дополнительные форматы файлов

Oxfmt форматирует JavaScript, JSX, TypeScript, TSX, JSON, JSONC, JSON5, YAML, TOML, HTML, Angular, Vue, CSS, SCSS, Less, Markdown, MDX, GraphQL, Ember и Handlebars — один инструмент на весь проект.

Интеграция Tailwind CSS

Встроена автоматическая сортировка классов Tailwind для JS/TS и других файлов. Функциональность prettier-plugin-tailwindcss встроена, плагин не нужен.

Сортировка импортов

Встроенная сортировка импортов с настройками:

  • ignoreCase — без учёта регистра
  • sortSideEffects — side-effect импорты
  • newlinesBetween — пустые строки между группами
  • groups — порядок групп
  • customGroups — свои группы

Полный справочник — config file reference.

Сортировка package.json

По умолчанию включена сортировка полей package.json для единообразия.

Форматирование встроенных языков

Форматирование кода во встроенных шаблонных литералах:

  • CSS-in-JS в духе styled-components, styled-jsx и CSS prop
  • шаблоны и стили в @Component Angular

Node.js API

Доступен программный API:

ts
import { format, type FormatOptions } from "oxfmt";

const input = `let a=42;`;
const options: FormatOptions = {
  semi: false,
};

const { code } = await format("a.js", input, options);
console.log(code); // "let a = 42"

Изменения CLI

  • --init — создать конфиг
  • --migrate prettier — миграция с Prettier
  • --migrate biome — миграция с Biome
  • --stdin-filepath — путь для ввода из stdin
  • раскрытие glob — oxfmt './packages/**/*.{js,jsx}'

Изменения конфигурации

  • overrides — разные опции для паттернов файлов
  • insertFinalNewline — завершающие переводы строк
  • поддержка .editorconfig для insert_final_newline

Поддержка редакторов

Oxfmt работает в VS Code, Cursor, Zed, IntelliJ IDEA, WebStorm, Neovim и любом редакторе с LSP.

Дорожная карта

Двигаемся к стабильному релизу:

  • поддержка плагинов Prettier
  • улучшение форматирования xxx-in-js
  • стабильность
  • оптимизации производительности

Дальнейшие шаги

Полное руководство — документация Oxfmt.

Сообщения об ошибках

По расхождениям форматирования см. обсуждение.

Сообщество

Ждём вашего фидбека по Oxfmt: