Oxfmt вышел в бету: форматирование JavaScript и TypeScript на новом уровне
-
Oxfmt вышел в бету - это значит, что форматирование кода для JavaScript и TypeScript стало еще надежнее и быстрее. Инструмент на Rust полностью совместим с Prettier, но работает в разы шустрее, особенно на больших проектах. Теперь можно забыть о тормозах в CI и редакторах.
Поддержка новых форматов файлов и встроенные фичи вроде сортировки импортов решают типичные проблемы команд. Если вы мигрируете с Prettier, diffs будут минимальными. Это упрощает жизнь фронтенд-разработчикам и упрощает workflows.
Что нового в бете Oxfmt
Бета-версия Oxfmt достигла 100% совместимости с тестами Prettier на JavaScript и TypeScript. Команда проекта доработала оставшиеся несоответствия, сообщив о них в Prettier, и теперь работает над полным слиянием подходов. Это критично для миграции - код будет форматироваться идентично, без сюрпризов в git.
С декабря альфы добавили поддержку множества файлов: от JSON и YAML до HTML, CSS и даже Markdown с MDX. Встроенная сортировка Tailwind-классов и импортов избавляет от лишних плагинов. Проекты вроде Vue.js, Turborepo и Sentry уже используют Oxfmt в продакшене - это показывает реальную adoption.
Вот ключевые улучшения:
- 100% Prettier-тесты: Полное покрытие JS/TS, миграция без риска.
- Расширенные форматы: YAML, TOML, HTML, Vue, Angular, GraphQL и другие.
- Встроенные фичи: Сортировка импортов, Tailwind, package.json - без плагинов.
- Стабильность: Фиксы для embedded языков вроде CSS-in-JS и styled-jsx.
Сравнение с Prettier: скорость и совместимость
Oxfmt написан на Rust и использует быстрый парсер Oxc, что дает прирост производительности до 30x по сравнению с Prettier на Node.js. Prettier хорош стабильностью, но на монолитах и в CI он заметно тормозит. Oxfmt решает это, сохраняя opinionated стиль форматирования.
Пример: в длинных массивах Prettier иногда ломает строки неоптимально, а Oxfmt держит inline, если помещается - это последовательнее. Конфигурация похожа, основные опции вроде printWidth и singleQuote поддерживаются из коробки. Нет нужды в доп. зависимостях.
Аспект Prettier Oxfmt Скорость Базовая (Node.js) 10-30x быстрее (Rust) Совместимость JS/TS 100% эталон 100% тестов в бете Поддержка форматов JS/TS + плагины 20+ встроенно Tailwind сортировка Плагин нужен Встроено Конфиг .prettierrc Совместим, oxfmt config Нюанс: Для редких edge-кейсов репортите issues - команда активно фиксит.
Как подключить Oxfmt в проект
Интеграция простая: замените prettier на oxfmt в package.json скриптах. CLI работает аналогично - oxfmt . форматирует все, oxfmt --check проверяет. Для VSCode и Cursor есть extensions с auto-format on save. Node.js API позволяет вызывать форматирование программно.
Пример package.json:
{ "scripts": { "fmt": "oxfmt", "fmt:check": "oxfmt --check" } }Для VSCode добавьте в settings.json:
{ "editor.defaultFormatter": "oxc.oxc-vscode", "editor.codeActionsOnSave": { "source.fixAll.oxfmt": "always" }, "oxc.fmt.experimental": true }Шаги миграции:
- Установите oxfmt: npm i -D oxfmt.
- Замените скрипты и удалите Prettier, если не нужен.
- Проверьте diffs на небольшом проекте.
- Для сложных конфигов используйте мигратор с --js-plugins.
Возможности за пределами JS/TS
Oxfmt теперь универсален: форматирует CSS, SCSS, HTML с Angular/Vue шаблонами, даже GraphQL и Handlebars. Embedded языки вроде CSS-in-JS или GraphQL в шаблонах обрабатываются нативно. Сортировка полей в package.json - приятный бонус для npm-проектов.
Это снижает количество инструментов в стеке. Один oxfmt вместо кучи prettier-плагинов. Поддержка JSON5, TOML упрощает конфиги. В будущем ждем больше языков и фич вроде range-ignore для JS/TS.
Список поддерживаемых:
- Веб: HTML, CSS, SCSS, Less, Markdown, MDX.
- Конфиги: JSON, JSONC, JSON5, YAML, TOML.
- Фреймворки: JSX/TSX, Angular, Vue, Ember, GraphQL.
Горизонты Rust-инструментов для JS
Бета Oxfmt - шаг к доминированию Rust-tooling в JS-экосистеме. С Oxlint и bundler’ом от той же команды стек становится цельным и сверхбыстрым. Осталось доработать редкие Prettier-опции и нишевые форматы.
Дальше - интеграция с monorepo-tools и улучшения для мобильной разработки. Стоит присмотреться, если скорость CI важна. Rust-парсер Oxc уже задает стандарт для парсинга JS/TS.
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.