일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Context API
- 오블완
- package.json
- next.js
- useState
- Study
- PullRequest
- Pr
- 협업
- js
- Fe
- polling
- github
- 개발자 도구
- 개발
- react-query
- 프레임 워크
- tailwind css
- CSS
- eslint
- 개발자
- 비제어
- react
- prettier
- frontend
- 코딩 테스트
- 티스토리챌린지
- form
- zustand
- 가을 감성
- Today
- Total
ougi FE
package.json? package-lock.json? 무슨 차이일까? 본문
개발하다가 보면 이 아마 두가지 파일을 본 적이 있을 것입니다
이름도 비슷한 두가지 대체 무슨 차이가 있을까요?
오늘은 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' 카테고리의 다른 글
[JavaScript] Shadow DOM이란 뭘까? (1) | 2024.11.26 |
---|---|
Closure(클로저)가 뭘까? (4) | 2024.11.15 |
[코딩 테스트] (제일 작은 수 제거하기) 나의 첫 코딩 테스트 트러블 슈팅!! ⚽(+ shift, sort, pop, splice, Math.min) (1) | 2024.09.28 |
[JavaScript] Cropper.js가 뭘까? ✂️ (2) | 2024.09.11 |
[Formatter] ESLint가 뭘까?? (1) | 2024.09.06 |