피드로 돌아가기
Your package.json diffs are noisy for no reason. I built a zero-dep fixer.
Dev.toDev.to
DevOps

package.json Key Order 최적화를 통한 PR Noise 제거 및 Zero-dep 도구 설계

Your package.json diffs are noisy for no reason. I built a zero-dep fixer.

benjamin2026년 6월 12일3beginner

Context

에디터 및 도구별로 상이한 JSON Key 정렬 방식으로 인해 불필요한 Diff가 대량 발생함. 단순 Alphabetical Sort 적용 시 가독성 저하 및 scripts 실행 순서 파괴와 같은 사이드 이펙트가 발생하는 한계점이 존재함.

Technical Solution

  • 데이터 성격에 따른 계층적 정렬 전략(Hierarchical Sorting Strategy) 수립
  • package.json 전용 Conventional Order(name, version, description 순) 정의를 통한 가독성 확보
  • Dependency Block(dependencies, devDependencies 등)에 한정한 A-Z 정렬 적용으로 일관성 유지
  • Semantic Meaning를 가진 scripts 영역과 Array 데이터의 순서를 보존하는 Non-destructive 접근 방식 채택
  • Node.js 및 Python으로 동일 로직을 구현하여 Monorepo 환경의 언어 간 출력 결과 일치(Byte-identical) 달성
  • 기존 Indentation 및 Trailing Newline을 보존하는 로직을 통해 포맷팅 충돌 방지

- JSON 정렬 도구 도입 시 단순 알파벳순이 아닌 도메인별 관습적 순서(Conventional Order) 고려 여부 확인 - 실행 순서가 중요한 설정 파일(scripts 등)의 경우 정렬 대상에서 제외하거나 옵션화 처리 - CI Gate에 --check 플래그를 추가하여 설정 파일의 정렬 상태를 강제하고 코드 리뷰 노이즈 제거

원문 읽기