HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
육개짱 프론트엔드
육개짱 프론트엔드
/
package.json package-lock.json 관리

package.json package-lock.json 관리

완료
완료
날짜
Feb 20, 2024
Assignee

논의사항
건의사항
필독
npm i 와 npm ci의 차이 - 읽고오기
영어인데 더 자세한 버전
 
뇌피셜 주의

문제점

  • npm i 는 package-lock.json 파일을 변경시킬 수 있음
  • 현재 매번 필요한 사람이 패키지를 설치하고 있어서 할때마다 package-lock.json 파일 변경됨 - 이건 어쩔 수 없음
→ 문제는 다른 사람이 이걸 pull받고 다시 npm i로 설치하면 package.json과 lock.json에 file change가 발생하기 때문에 또 바뀐거 push하고 merge됨 → 누군가는 충돌나서 오류가 생김

결론

  • 모두가 동일한 package-lock.json 파일을 가지고 있어야함
    • 동일한 의존성, 버전을 가지고 있어야함
    • 이거 왜 이렇게 바뀜? 에 집중하기 보다는 동일한 파일을 가지고 있는 것에 초점을 맞추는게 좋아보임
  • package 임의로 설치하지 말기
    • 설치가 필요하면 무조건 공지한 후 설치하기
    • 필요한 패키지들은 미리 초기세팅때 설치해 놓아야 했을듯…
  • package 설치할 일이 있으면,
      1. npm i xx 로 설치 후 변경된 package-lock.json 파일 git에 올린 후, pull 받아서 npm ci로 설치
    • npm i 로 하면 또 바뀔 수 있으니 무조건 npm ci로 설치하고, 해당 파일은 절대 임의로 수정하지 말기
    • 이러면 package-lock.json 파일은 변경될 일이 없음
 

생각해본 방법

  • 임의로 패키지를 설치하거나 충돌난다고 임의로 package 파일 건드는 거 절대 금지
  • 필요시에는 논의 하에 정확한 명칭,버전을 정한 후 대표로 한명이 설치
    • 나중에 다운그레이드하거나 하게되면 귀찮음
  • label 중에 Package 라는 걸 이용해서 내가 패키지 설치했다는 걸 알리기
  • 한개의 커밋에 package.json , package-lock.json 파일을 묶어서 커밋하기
    • 절대 다른 file change 끼워넣지 말기
    • 다른 사람들도 임의로 바꾸고 다른 커밋에 끼워넣지 말기
    • 본인이 직접 로컬 등등에서 실행해서 문제 없는지 확인 후에 push하기
      • 커밋 메시지는 버전(기존 버전 + 1) + 어떤 거 설치했는지 대략적으로
        • Ex) v3 - msw 및 관련 패키지 설치..
  • 각자 npm 버전 확인하기 - 전 10버전임