피드로 돌아가기
Dev.toDevOps
원문 읽기
package.json Key Order 최적화를 통한 PR Noise 제거 및 Zero-dep 도구 설계
Your package.json diffs are noisy for no reason. I built a zero-dep fixer.
AI 요약
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 플래그를 추가하여 설정 파일의 정렬 상태를 강제하고 코드 리뷰 노이즈 제거