Сжимает CSS после проверки синтаксиса: удаляются комментарии, переносы строк, пробелы вокруг { } : ; и последняя точка с запятой в каждом правиле, так что таблица стилей на 40 КБ заметно худеет ещё до gzip. Комментарии /*! лицензия */ сохраняются, как того требует большинство лицензий.
Как пользоваться
- Выберите язык (при вставке или перетаскивании файла он определяется автоматически), затем вставьте код или откройте файл.
- «Форматировать» использует Prettier, а для SQL — sql-formatter. Выберите отступ и ширину строки; для JavaScript также кавычки и точки с запятой, для SQL — диалект и регистр ключевых слов.
- «Минифицировать» удаляет комментарии и пробелы в HTML, CSS, JSON, XML, SQL и GraphQL. Для JavaScript и TypeScript удаляются только пробелы и комментарии.
- Синтаксические ошибки показываются с точной строкой и столбцом и указателем. Нажмите на ошибку, чтобы перейти к ней.
- Скопируйте или скачайте результат либо используйте его как новый ввод.
- Форматирование выполняется в фоновом потоке (Web Worker) в вашем браузере: большие файлы не подвешивают страницу, а код никуда не отправляется.
- Плагины языков загружаются только при первом использовании.
- Для форматирования принимается JSON с комментариями и висячими запятыми (JSONC); для минификации нужен строгий JSON.
- YAML и Markdown нельзя безопасно минифицировать, поэтому для них доступно только форматирование.
Зачем нужен форматер
Единое оформление переводит код-ревью с пробелов на логику и сохраняет диффы маленькими. Prettier не оставляет выбора в мелочах: он заново печатает весь файл по синтаксическому дереву, поэтому результат не зависит от исходных отступов. Настраивается немногое: ширина отступа или табуляция, ширина строки (по умолчанию 80 символов), а для JavaScript — одинарные или двойные кавычки и точки с запятой.
Поскольку код сначала разбирается, форматер заодно служит быстрой проверкой синтаксиса. Пропущенная скобка или незакрытый тег останавливают форматирование и отмечаются в точной позиции — часто это быстрее, чем читать стек вызовов.
Форматировать или сжать
Форматирование добавляет переносы и отступы для людей. Сжатие убирает комментарии и пробелы для машин: в HTML пробелы схлопываются, но содержимое pre и textarea не трогается; в CSS удаляются комментарии, кроме блоков /*! лицензия */; SQL, JSON, XML и GraphQL сводятся к одной компактной строке. Для JavaScript и TypeScript сжатие только убирает пробелы и комментарии и не переименовывает переменные, как это делает сборщик. YAML и Markdown зависят от пробелов, поэтому для них есть только форматирование.
Форматирование SQL
Единого стиля для SQL нет. Здесь ключевые слова можно писать ЗАГЛАВНЫМИ или строчными, а выбор диалекта учит форматер синтаксису MySQL, PostgreSQL, SQL Server (T-SQL), Oracle PL/SQL, SQLite, BigQuery, Snowflake и других — обратным кавычкам в идентификаторах, приведению через :: или параметрам $1.
Частые вопросы
Загружается ли мой код на сервер?
Нет. Форматирование выполняется в web worker внутри браузера. Код не покидает устройство, что важно для закрытого кода и файлов с учётными данными.
Какие языки поддерживаются?
HTML, CSS, SCSS, LESS, JavaScript, JSX, TypeScript, TSX, JSON, SQL в 20 диалектах, XML, YAML, GraphQL и Markdown. Язык определяется при вставке или перетаскивании файла.
Совпадёт ли результат с Prettier в моём проекте?
Да, при тех же настройках. Это и есть Prettier, поэтому с тем же отступом, шириной строки, кавычками и точками с запятой результат будет как у prettier --write.
Почему форматирование падает с синтаксической ошибкой?
Форматер разбирает код перед тем, как напечатать его заново, поэтому некорректный код отформатировать нельзя. В сообщении указаны строка и столбец; исправьте ошибку — и всё заработает.
Переименовывает ли сжатие JavaScript переменные?
Нет. Удаляются только комментарии и лишние пробелы. Для боевых бандлов с переименованием и удалением мёртвого кода используйте сборщик вроде esbuild или Terser.
Можно ли форматировать JSON с комментариями?
Для форматирования да: JSON с комментариями и висячими запятыми (JSONC, как в tsconfig.json) принимается. Для сжатия нужен строгий JSON.