목록 보기
Vite에서 CSS 우선순위를 지키는 법: 우아한공방의 문제 해결기
데브옵스

Vite에서 CSS 우선순위를 지키는 법: 우아한공방의 문제 해결기

우아한 형제들
우아한 형제들
2025년 11월 14일

두줄요약

Vite와 Vanilla Extract의 빌드 흐름을 추적해 CSS 우선순위가 import 순서에 따라 뒤바뀌는 원인을 파악했습니다. 뱅코멘트 기반 정렬 플러그인으로 청크를 재조합해 일관된 스타일 순서를 보장했습니다.

문제 상황

  • Vite 환경에서 import 순서에 따라 CSS 우선순위가 뒤집혀 컴포넌트 스타일이 깨지는 현상
  • reset CSS와 컴포넌트 스타일의 배치가 뒤섞이며 style.css 결과가 매번 달라지는 문제
  • 임시로 import 및 build 엔트리 순서를 조정하는 코드가 누적되며 리팩터링 부담 증가

원인 분석

  • Vite가 ESM import 규칙을 그대로 따라 모듈을 load하고 transform하는 구조
  • Vanilla Extract가 각 *.css.ts 파일을 청크로 컴파일한 뒤, Vite Core CSS Plugin이 이를 순차적으로 결합하는 방식
  • 청크 조립 순서가 곧 최종 CSS 우선순위로 이어지는 구조적 특성

해결 방법

  • 청크 헤더에 뱅코멘트(/*!)로 ID를 남기는 BangCommentPlugin 적용
  • Vite Core CSS Plugin 이후에 ID 기준으로 청크를 재정렬하는 ReorderPlugin 적용
  • import 순서와 무관하게 고정된 CSS 우선순위 보장

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...