피드로 돌아가기
One PR to a parser unlocked prerendering in Brisa
Dev.toDev.to
Frontend

Meriyah 파서 도입 및 AST 커스텀을 통한 Brisa 빌드 파이프라인 최적화

One PR to a parser unlocked prerendering in Brisa

Aral Roca2026년 4월 23일10advanced

Context

TypeScript Compiler API 기반의 기존 i18n 라이브러리 설계에서 발생한 과도한 타입 체크 오버헤드로 인한 빌드 속도 저하 문제 발생. 단순 AST 추출 목적임에도 Full Type-checker 인스턴스화로 인해 필요 이상의 리소스가 낭비되는 병목 지점 식별.

Technical Solution

  • Native Binding이나 WASM 로딩 단계가 없는 Pure JavaScript 기반의 Meriyah 파서를 채택하여 마이크로초 단위의 파싱 속도 확보
  • Bun Transpiler를 통한 1차 변환 후 Meriyah로 ESTree-compliant AST를 생성하는 직렬 파이프라인 구축
  • renderOn="build" 속성 탐색 시 __prerender__macro() 호출로 대체하고 ImportAttribute 노드를 수동으로 생성하는 AST Transform 로직 설계
  • Import Attribute 미지원 문제를 해결하기 위해 Meriyah 파서 자체에 해당 문법 지원 기능을 추가하는 PR 기여를 통한 엔드 투 엔드 파이프라인 완성
  • astring 라이브러리를 활용하여 수정된 AST 노드를 다시 코드로 재생성하는 코드 제너레이션 프로세스 적용

- AST 분석 도구(AST Explorer 등)를 통해 구문 분석 결과와 실제 코드의 구조적 매핑을 우선 확인 - 단순 AST 추출이 목적일 경우 Full Compiler API 대신 Lightweight Parser(Acorn, Meriyah 등) 검토 - 프레임워크 레벨의 코드 변환 필요 시, Target Parser가 최신 ECMAScript 제안 문법(Import Attributes 등)을 지원하는지 확인 - 파서 선택 시 WASM/Native 바인딩 유무에 따른 콜드 스타트 및 런타임 오버헤드 비교 분석

원문 읽기