일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- thymeleaf
- vuex
- dependency injection
- Java
- 프로토타입
- JPA
- Spring
- 싱글톤
- HTTP
- Singleton
- js
- 라이프 사이클
- 로그인
- 의존성 주입
- VUE
- di
- Vue.js
- cache
- vue-cli
- Security
- Excel
- BEAN
- Setter
- Kotlin
- HTTP 메서드
- 캐시
- Stateless
- DB
- Repository
- javascript
- Today
- Total
jhhan의 블로그
package-lock.json 이란? 본문
이번 포스트에서는 package-lock.json에 대해서 알아보겠습니다.
사실 이 글을 vue.js 카테고리에 넣는게 맞나 하는 생각이 들기도 합니다.
하지만 package-lock.json이라는 파일이 사용되는 곳이
일단 저한테는 vue.js를 사용할 때입니다.
그래서 이 카테고리에 넣었습니다.
일단 vue.js 프로젝트를 하나 만들었을 때의 구조입니다.
package.json과 package-lock.json 파일이 2개 다 보이죠.
일단 먼저 package.json에 대해서 먼저 알아봐야 겠네요.
package.json
- 프로젝트의 정보 정의
- 의존하는 패키지 정보를 표시
이런 파일입니다.
그리고
- 프로젝트 정보 : name, version
- 패키지 정보 : dependencies, devdependencies
가 됩니다.
여기서 패키지 정보가 중요한데요.
- dependencies : 프로덕션 환경에서 응용 프로그램 개발에 필요한 패키지
- devdependencies : 로컬 개발 & 테스트에서 필요한 패키지
이렇게 됩니다.
package.json은 이렇게 알아두시면 큰 문제는 없을 것 같네요.
그럼 package.json에 프로젝트 정보, 패키지 정보가 다 들어가는데
package-lock.json 파일은 왜 필요할까요?
package.json 파일만으로는 정보가 부족해서 ... 라고 합니다.
package.json에는 버전정보를 저장할 때 version range를 사용합니다.
version range는 특정 버전이 아닌 버전의 범위를 의미합니다.
그리고 package.json을 이용해서 npm install을 진행하더라도
몇가지 문제로 인해 다른 node_modules 가 생성되는 경우가 있습니다.
- npm 버전이 다른 경우
- version range에 제대로 버전을 명시하지 않은 경우
- 패키지가 새로운 버전이 배포된 경우
3가지 입니다.
그래서 package.json이 동일하더라도 개발 테스트가 어떤 컴퓨터에서는 잘 되고, 어떤 컴퓨터에서는 잘 안될 수 있습니다.
package-lock.json은 package.json이 수정되거나 node_modules의 구조가 변경될 때
당시의 의존성에 대한 정확하고 구체적인 정보를 가지고 자동 생성이 됩니다.
또한 package-lock.json 파일이 존재하는 경우에는
package.json파일을 이용하지 않고 node_modules 파일을 생성합니다.
결국 package-lock.json이라는 파일은
동일한 node_modules를 생성하게 해줘서 같은 의존성을 설치할 수 있게 보장하는 파일입니다.
협업을 해야하는 개발자들에게는 필수 파일이 되는 것이죠 ㅎㅎ
그렇게 때문에 commit 시 package-lock.json 파일도 같이 올리도록 해야합니다.
이렇게 package-lock.json파일에 대해서 알아봤습니다.
이 파일은 왤케 많은 내용을 포함하고 있나 하는 궁금증은 있었는데,
이렇게 해결하게 되네요. ㅎㅎ
그럼 이만...
참고한 사이트입니다.
'Vue.js' 카테고리의 다른 글
Vue.js - 새로 알게 된 내용들 정리 (0) | 2022.08.30 |
---|---|
vue.js 다시 시작해보기 (0) | 2022.08.25 |
Vue.js - Excel Download 바로 처리하기 (3) | 2021.02.14 |
ESLint Error 혹은 Warning 관련 (0) | 2020.11.19 |
Vuetify(4) (2) | 2020.07.07 |