[이슈해결] 패키지 버전 관리

이나현·2023년 5월 27일
0

오라운드

목록 보기
18/18
post-thumbnail

[문제 상황]

  • svg 관련 테스트를 하다가 next js를 버전 업 하는 일이 발생
  • 버접업을 하니 svg 관련해 원하는 기능은 작동하나, 다른 에러가 떠 버전을 낮췄다.
  • 그랬더니, 코드를 배포하려고 하니 build시 에러가 계속 발생했다

[현상 분석]

//package.json
"next": "^12.0.4",
//package-lock.json
"@next/...": {
	"version": "12.3.4"
}

package.json의 next js의 버전과 package-lock.json의 버전이 맞지 않는다는 것을 발견했다!!

분명, nextjs의 버전이 12.0.4인데 왜 package-lock의 버전이 다른지 알아보다가 semver 규칙을 알게되었다.

“예를 들어, 위 예제와 같이 react패키지가 "react": "^16.8.2"이라고 등록되어 있으면, SemVer 규칙에 따라 16.8.2 이상 17.0.0미만의 범위로 버전이 지정됩니다.”

그렇다! semver 규칙에 따라 그 범위의 가장 최선의 버전이 지정된다. 해당 범위 중 next js의 최선 버전이 적용되어서 발생하는 문제였다.

[문제 해결]

//package.json
"next": "12.0.4",
//package-lock.json
"@next/...": {
	"version": "12.0.4"
}

⇒ 이렇게 package의 version을 특정 version으로 명시해 사용했더니 빌드 이슈는 사라졌다.

lock 파일에 대해 조심해서 사용하자!!

[참고]

https://www.daleseo.com/js-package-locks/

profile
technology blog

0개의 댓글