무엇을 개발하던 시간이 지나면 의존성 있는 패키지들을 업데이트해야하는 상황이 무조건 생기기 마련이다.
우리의 NodeJS 프로젝트에서 안전하게 패키지를 업데이트 하는 방법을 알아보자.
NodeJS 패키지 업데이트 방법
1. 버전 확인
업데이트할 패키지을 확인하기 위해 npm outdated 명령어를 입력하면 아래와 같이 나온다.
$ npm outdated
아래의 의미가 중요하다.
Current | 현재 설치된 버전 |
Wanted | package.json에서 지정된 semVer 한도내의 최신버전 |
Latest | 해당 패키지의 최신버전 |
우리는 대부분의 상황에서 Wanted 버전으로만 업데이트를 하게 될 것이다.
Latest에서 Major버전이 업데이트되는 상황이 있다면 어떤 일이 발생할지는 각자가 알 거라 생각된다.
2. 버전 업데이트
기본적으로 npm update는 package.json에 명시된 semVer 규칙 한도내에서 패키지를 업데이트한다.
package.json에서 대부분의 패키지가 Minor 버전까지만을 제한하므로 update를 해도 대부분 안전할 것이다.
$ npm update (패키지명) (--save)
(패키지명) 에 우리가 업데이트하고자 하는 패키지를 넣으면 된다.
--save는 옵션이다.
$ npm update nuxt --save
npm outdated를 이용하여 확인해보자
nuxt 패키지가 2.15.8에서 2.16.2 버전으로 업데이트 된것을 알 수 있다.
즉, Wanted 버전으로 업데이트가 되었다.
3. --save 옵션
근데 여기서 중요한 옵션이 바로 --save 옵션이다.
--save 옵션이 없으면 package.json 파일에는 버전이 바뀌지가 않는다.
package.json
dependencies": {
"nuxt": "^2.15.8",
},
근데 사실 package-lock.json에서 관리를 해주기 때문에 --save 옵션을 안주어도 문제가 되진 않는다.
근데 이걸 모르던 나로써는 분명히 패키지를 update했는데 package.json에 버전이 바뀌지가 않아서 한참 원인을 찾아다니고
결국 버전을 명시해서 다시 install을 하곤 했다.
npm 문서를 보면 이에 대한 설명이 자세히 나와있다.
https://docs.npmjs.com/cli/v8/commands/npm-update?v=true#save
4. 결국 정리하면 이거다.
npm update | package-lock.json 파일만 변경 |
npm update --save | package-lock.json / package.json 파일 모두 변경 |
npm update를 했는데 package.json은 업데이트가 되지 않아서 업데이트가 안된줄 아는 분들이 있다면
그건 아니라고 말씀드리고 싶다.
package-lock.json에서 세부적인 관리가 되기 때문에
서버에 소스를 배포하여 빌드한다고 하더라도 package-lock.json에서 관리되기 때문에 업데이트 된 버전으로 설치가 된다고 보면 된다.
하지만 package.json 파일도 변경되길 원한다면 --save 옵션을 주면 된다.
'개발' 카테고리의 다른 글
InfluxDB 쿼리 개선 (0) | 2023.03.13 |
---|---|
Vue Progressive Framework (0) | 2023.03.11 |
Vue 시작하기전 알아야할 핵심 특징 - 컴포넌트, 선언적렌더링, 반응성 (0) | 2023.03.10 |
JWT를 활용한 로그인 인증 구현 (0) | 2023.03.08 |
내가 React가 아닌 Vue를 쓰는 이유 (0) | 2023.03.07 |
댓글