개발하다가 보면 이 아마 두가지 파일을 본 적이 있을 것입니다
이름도 비슷한 두가지 대체 무슨 차이가 있을까요?
오늘은 package.json과 package-lock.json의 차이를 알아보겠습니다
먼저 package.json은 npm 패키지 설치를 위해서 존재하는 파일로 일반적으로 프로젝트의 이름, 버전, 설명, 프로젝트 실행에 필요한 의존성 목록들을 포함하고 있습니다
가끔 정확히 명시하지 않아서 팀원과 버전 문제가 발생할 수 있습니다..
package-lock.json은 패키지들의 정확한 버전 정보를 명시하고 있는 파일입니다
package.json는 version range를 사용합니다
쉽게 말하자면 18.2.0버전을 사용합니다 라고 명시하는 것이 아닌
^18.2.0 이런 식으로 명시 해주는데 ^ 부호는 18.2.0버전이상 이라는 뜻입니다
~18.2.0은 18.2.x까지만 업데이트한다는 뜻입니다
하지만 package-lock.json는 정확한 버전을 명시해줍니다
그렇다면 여기서 드는 생각이 있을 것입니다 왜 굳이 정확한 버전을 명시하지 않고 version range를 사용하여 명시할까?
version range를 사용하면 의존성이 자동으로 최신 버전으로 업데이트될 수 있게 하려는 목적이 있습니다
이렇게 하면 버그 수정이나 성능 개선이 이루어진 최신 버전을 쉽게 가져올 수 있죠
이는 개발자의 관리 부담을 줄이고 새로운 기능을 빠르게 적용할 수 있도록 도와줍니다
이처럼 package.json과 package-lock.json은 서로 보완적인 역할을 합니다
package.json은 유연한 의존성 관리를 package-lock.json은 안정적인 환경을 되게 합니다
오늘은 두 파일에 대해서 알아보고 차이점을 알아보고 왜 그렇게 하는지 까지 알아보았는데
평소 궁금했던 점을 알게 되어 좋았습니다
글을 읽어주셔서 감사합니다
| [JavaScript] Shadow DOM이란 뭘까? (4) | 2024.11.26 |
|---|---|
| Closure(클로저)가 뭘까? (7) | 2024.11.15 |
| [코딩 테스트] (제일 작은 수 제거하기) 나의 첫 코딩 테스트 트러블 슈팅!! ⚽(+ shift, sort, pop, splice, Math.min) (3) | 2024.09.28 |
| [JavaScript] Cropper.js가 뭘까? ✂️ (8) | 2024.09.11 |
| [Formatter] ESLint가 뭘까?? (2) | 2024.09.06 |