npm 잠금 파일 충돌 해결기
Git 병합 중 package-lock.json의 같은 줄이 충돌하면 각 패키지 기록의 버전·다운로드 주소·무결성 값이 함께 유지되는지 확인하기 어렵습니다. 이 도구는 공통 원본과 두 분기의 npm 잠금 파일 v3을 패키지 위치별로 비교하고, 서로 다른 위치의 변경을 자동으로 합칩니다. 같은 위치를 양쪽에서 다르게 바꿨다면 왼쪽 또는 오른쪽 기록 전체를 명시적으로 선택하게 합니다. 선택 후 기본 의존성 위치와 제한된 버전 범위를 점검하며, 설치 성공 여부는 보증하지 않습니다.
주요 기능
- 공통 원본과 두 분기의 npm package-lock.json v3를 3방향 비교
- 패키지 위치가 다른 변경과 독립적인 루트 의존성 선언은 자동 결합
- 같은 위치의 버전·resolved·integrity를 한 패키지 기록으로 선택
- 누락된 필수 패키지와 지원 버전 범위 불일치를 차단 문제로 표시
- 미선택 충돌 또는 차단 문제가 없을 때만 병합 파일 다운로드
- 선택 내역·미해결 항목·주의 사항을 별도 JSON 보고서로 저장
사용 방법
- 병합 전 공통 원본을 '기준'에, 두 분기의 package-lock.json v3를 각각 '왼쪽'과 '오른쪽'에 선택합니다.
- 분석을 실행해 자동 결합된 위치와 직접 결정해야 할 충돌을 확인합니다.
- 충돌마다 패키지 기록 전체 또는 루트 선언을 보존할 분기를 선택합니다.
- 차단 문제를 확인하고 필요하면 원본 분기의 잠금 파일을 고쳐 다시 분석합니다.
- 병합 파일과 검토 보고서를 내려받은 뒤 자신의 package.json과 npm 작업 흐름에서 별도로 검증합니다.
활용 예시
- 서로 다른 패키지를 추가한 두 브랜치의 잠금 파일 합치기
- 같은 패키지의 버전이 갈라진 Git 충돌 검토
- 분기 선택 후 루트 의존성 선언과 실제 잠금 버전 대조
- 코드 리뷰를 위해 충돌 선택 내역과 남은 주의 사항 기록
자주 묻는 질문
Yarn, pnpm, Bun 또는 package-lock v1/v2도 병합하나요?
아닙니다. 현재 npm package-lock.json의 lockfileVersion 3과 packages 맵만 받습니다. 다른 형식은 자동 변환하지 않고 오류로 알립니다.
두 분기가 같은 패키지를 다르게 수정하면 무엇이 합쳐지나요?
각 분기의 패키지 기록 전체 중 하나를 직접 선택합니다. 버전만 왼쪽에서, 무결성 값만 오른쪽에서 떼어 합치지 않습니다. 삭제도 선택한 분기의 기록 상태 그대로 적용됩니다.
병합 파일을 내려받으면 npm ci가 성공하나요?
보장하지 않습니다. 이 도구는 제한된 숫자형 버전 범위와 필수 의존성 위치만 검사합니다. peer·optional·workspace·플랫폼 조건과 npm 설정, package.json 일치 여부는 자신의 프로젝트에서 별도 확인해야 합니다.
무결성 값이 다르면 어느 쪽이 옳은지 확인하나요?
아닙니다. 같은 버전과 다운로드 주소에 서로 다른 integrity 값이 있으면 다운로드를 차단합니다. 패키지를 내려받거나 해시를 검증하지 않으므로, 외부에서 원인을 확인하고 잠금 파일을 다시 생성해야 합니다.
파일이 서버로 업로드되나요?
아닙니다. 비교는 브라우저 안에서 실행됩니다. 각 파일은 최대 4MiB, 각 잠금 파일은 최대 5,000개 패키지 위치, 충돌은 최대 1,000개까지 처리합니다. 내려받은 결과에는 선택된 비공개 레지스트리 주소가 남을 수 있습니다.
개인정보 안내
세 파일은 이 브라우저 탭에서만 읽고 이 도구가 서버나 npm 레지스트리로 전송하지 않습니다. 결과와 보고서는 사용자가 직접 내려받을 때만 파일로 저장됩니다. 입력에 비공개 레지스트리 주소가 있다면 내려받은 잠금 파일에도 선택된 주소가 남으므로 공유 전 확인하세요.
댓글과 질문