bun fmt로 바꿨는데 Prettier도 남겨야 할까?
터미널에서는 bun fmt가 잘 도는데, 에디터에서 저장할 때마다 여전히 Prettier가 실행된다. package.json에서 Prettier를 지워도 될까?

- Bun 1.4.4의 bun fmt는 기존 Prettier 설정을 읽지만, 모든 플러그인을 직접 실행하지는 않는다.
- Astro 파일을 Prettier로 넘기는 프로젝트와 Prettier 에디터 확장을 쓰는 프로젝트는 의존성을 남겨야 한다.
- doctor로 처리 경로를 보고 check로 포맷을 검사한 뒤, 스크립트·CI·에디터의 호출을 함께 바꾼다.
Astro를 쓰면 명령을 바꿔도 Prettier가 필요하다
bun fmt를 실행할 수 있다는 사실만으로 Prettier를 삭제할 수는 없다. Bun의 전환 가이드는 Astro처럼 플러그인으로 지원하는 언어를 프로젝트에 설치된 Prettier로 보낸다고 설명한다. 이 경로를 쓰면 Prettier와 설정의 plugins에 들어 있는 플러그인들을 유지해야 한다.
에디터도 별도로 봐야 한다. 터미널의 포맷 명령을 교체했어도 저장할 때 실행되는 Prettier 확장이 그 패키지를 사용한다면 여전히 필요하다. 삭제 여부는 새 명령의 존재보다 남아 있는 호출 경로로 결정된다.
10월 22일 공개된 Bun 1.4.4는 기존 Prettier·oxfmt 설정을 읽는 내장 포맷터를 추가했다. 설정을 처음부터 다시 만드는 수고는 줄지만, 설정 호환과 의존성 제거는 따로 판단해야 한다.
doctor로 경로를 보고 check로 결과를 검사한다
처음에는 파일을 수정하지 않는 명령으로 시작한다. package.json에 이미 fmt 스크립트가 있으면 bun fmt는 그 스크립트를 실행할 수 있다. 내장 포맷터를 확실히 호출하려면 --no-script를 붙인다.
bun fmt --no-script --doctor
bun fmt --no-script --check doctor는 어떤 설정을 읽고 어느 파일을 직접 처리하거나 Prettier에 넘기는지 보여준다. 다른 도구 설정·CI 파일·Git 훅까지 검사하는 도구는 아니므로, 삭제 가능 목록을 프로젝트 전체 의존성 감사 결과로 받아들이면 안 된다.
check는 포맷이 필요한 파일을 검사하고 파일을 쓰지 않는다. 종료 코드 0은 포맷 변경이 필요 없다는 뜻이고, 1은 변경이 필요하다는 뜻이다. 2는 구문 오류나 처리하지 못한 파일 등 오류를 뜻한다. 진단과 포맷 검사는 서로 대신할 수 없다.
내장 처리, Prettier 경유, 미지원이 갈린다
| 설정에 있는 기능 | Bun의 처리와 남길 것 |
|---|---|
| Tailwind 클래스·일부 import 정렬 등 내장 지원 플러그인 | 설정의 plugins 항목을 유지해 기능과 옵션을 전달한다. 패키지 삭제는 다른 호출이 없는지 확인한 뒤 결정한다. |
| Astro 등 Prettier 플러그인 언어 | 설치된 Prettier로 넘긴다. 경유 실행에 필요한 Prettier와 설정된 플러그인들을 유지한다. |
| 그 밖의 미지원 플러그인 | 해당 설정이 적용되는 파일을 건너뛰고 종료 코드 2를 반환한다. |
공식 가이드의 내장 목록과 진단 결과를 함께 봐야 한다. --allow-unsupported는 빠진 플러그인을 지원하게 만드는 옵션이 아니다. 그 플러그인 없이 포맷하도록 허용하므로, 기존 정렬·서식 규칙이 필요하다면 오류를 없애기 위해 무작정 붙일 옵션이 아니다.
포맷 명령과 검사 명령을 나눠 교체한다
예를 들어 기존 format과 format:check를 다음처럼 바꿀 수 있다. 기존 scripts의 나머지 항목은 유지한다.
{
"scripts": {
"format": "bun fmt --no-script",
"format:check": "bun fmt --no-script --check"
}
} Prettier는 파일 덮어쓰기에 --write를 사용하지만 bun fmt는 기본적으로 파일을 수정한다. 따라서 CI의 검사 단계에서 check를 빠뜨리면 목적이 달라진다. Git 훅과 에디터 저장 동작도 같은 기준으로 맞춰야 한다.
전환 작업은 먼저 진단과 검사를 실행하고, 호출을 바꾼 뒤 포맷 변경 diff를 검토하는 순서가 적절하다. 마지막에 doctor를 다시 실행하더라도 에디터·CI의 남은 호출은 직접 확인해야 한다. Astro 경유 실행이나 에디터 의존성이 남아 있다면 Prettier를 유지한 채 bun fmt를 사용하는 구성이 맞다.