Skip to content

Prettier

Prettier는 코드 스타일을 자동으로 통일해주는 opinionated code formatter입니다. 코드를 파싱하여 자체 규칙에 따라 재출력함으로써 일관된 스타일을 강제합니다. JavaScript, TypeScript, HTML, CSS, JSON 등 다양한 언어를 지원합니다.

  • 일관된 코드 스타일: 팀 전체가 동일한 포맷을 사용
  • 자동 포맷팅: 저장 시 자동으로 코드 정리
  • 설정 최소화: 기본 설정만으로도 충분히 사용 가능
  • 다양한 언어 지원: 플러그인을 통해 확장 가능
Terminal window
npm install --save-dev prettier
Terminal window
yarn add --dev prettier
Terminal window
pnpm add --save-dev prettier
Terminal window
bun add --dev prettier

프로젝트 루트에 Prettier 설정 파일을 생성합니다:

Terminal window
node --eval "fs.writeFileSync('.prettierrc','{}\n')"

.prettierrc 파일에 다음과 같이 설정합니다:

{
"semi": false,
"trailingComma": "none",
"bracketSameLine": true,
"htmlWhitespaceSensitivity": "ignore",
"printWidth": 120,
"singleQuote": true
}
옵션설명
semifalse세미콜론을 사용하지 않음
trailingComma"none"후행 쉼표를 사용하지 않음
bracketSameLinetrue태그의 닫는 괄호를 같은 줄에 배치
htmlWhitespaceSensitivity"ignore"HTML 공백 처리를 무시
printWidth120한 줄의 최대 길이를 120자로 설정
singleQuotetrue작은따옴표 사용

Tailwind CSS 클래스를 자동으로 정렬하기 위해 플러그인을 설치합니다:

Terminal window
npm install -D prettier-plugin-tailwindcss

.prettierrc 파일에 플러그인을 추가합니다:

{
"semi": false,
"trailingComma": "none",
"bracketSameLine": true,
"htmlWhitespaceSensitivity": "ignore",
"printWidth": 120,
"singleQuote": true,
"plugins": ["prettier-plugin-tailwindcss"],
"tailwindAttributes": [],
"tailwindFunctions": ["cva", "tw"]
}
  • plugins: Prettier 플러그인 목록
  • tailwindAttributes: Tailwind 클래스를 정렬할 커스텀 속성
  • tailwindFunctions: Tailwind 클래스를 정렬할 함수 이름 (예: cva, tw)

커밋 전에 자동으로 코드를 포맷팅하려면 Husky와 lint-staged를 사용합니다:

Terminal window
npm install --save-dev husky lint-staged
npx husky init
node --eval "fs.writeFileSync('.husky/pre-commit','npx lint-staged\n')"
{
"lint-staged": {
"**/*": "prettier --write --ignore-unknown"
}
}

이제 git commit 시 자동으로 Prettier가 실행됩니다.

전체 프로젝트 포맷팅:

Terminal window
npx prettier --write .

특정 파일 포맷팅:

Terminal window
npx prettier --write src/index.js

대부분의 에디터(VS Code, WebStorm 등)는 Prettier 플러그인을 제공합니다. 설치 후 저장 시 자동 포맷팅을 활성화할 수 있습니다.