AI가 만들어준 프로젝트를 열어보니 package.json 말고 package-lock.json이라는 파일이 하나 더 있다. 내가 건드린 적도 없는데 커밋할 때마다 같이 딸려온다. 지워도 되는 걸까?
한 줄 정의
락 파일은 내 프로젝트가 실제로 설치한 모든 패키지의 '정확한 버전'을 그대로 찍어놓은 기록이다.
왜 필요한가
package.json에는 보통 버전이 "^1.2.0" 처럼 범위로 적혀 있다. 이러면 오늘 설치한 버전과 다음 달에 설치한 버전이 미묘하게 달라질 수 있다. 락 파일은 그 순간 실제로 깔린 버전을 하나하나 고정해둬서, 나중에 누가 다시 설치해도 완전히 똑같은 조합이 깔리게 만든다.
실전에서 이렇게
내 컴퓨터에선 잘 되던 앱을 배포했는데 서버에서만 에러가 난다. 알고 보니 어느 라이브러리의 최신 버전이 그 사이 업데이트되면서 동작이 살짝 바뀐 거였다. 락 파일이 커밋되어 있었다면 배포 환경도 내 컴퓨터와 똑같은 버전으로 깔렸을 텐데, 락 파일을 지웠거나 .gitignore에 넣어버려서 벌어진 일이다. 그래서 락 파일은 보기 지저분해도 지우지 말고 코드랑 같이 커밋해야 한다.
비유
package.json이 "카페라떼 아무거나"라는 주문이라면, 락 파일은 "이 브랜드 원두로, 이 우유로, 이 비율로" 적어둔 정확한 레시피다. 레시피가 있어야 어느 지점에서 주문해도 똑같은 맛이 나온다.
#배포#앱자랑#에러해결
댓글 0
첫 댓글을 남겨보세요!