Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. JavaScript
  5. Oxfmt вышел в бету: форматирование JavaScript и TypeScript на новом уровне

Oxfmt вышел в бету: форматирование JavaScript и TypeScript на новом уровне

Запланировано Прикреплена Закрыта Перенесена JavaScript
oxfmtформатированиеjavascript
1 Сообщения 1 Постеры 85 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • hannadevH Не в сети
    hannadevH Не в сети
    hannadev
    написал в отредактировано
    #1

    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
    }
    

    Шаги миграции:

    1. Установите oxfmt: npm i -D oxfmt.
    2. Замените скрипты и удалите Prettier, если не нужен.
    3. Проверьте diffs на небольшом проекте.
    4. Для сложных конфигов используйте мигратор с --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.

    1 ответ Последний ответ
    0

    Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.

    Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

    С вашими комментариями этот пост мог бы стать ещё лучше 💗

    Зарегистрироваться Войти

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы