pnpm install --no-frozen-lockfile?

요란·2024년 12월 21일
post-thumbnail

배포를 하던 중, 이상하게 한 문장에서 계속 걸리는 문제가 발생했다.

 ERR_PNPM_OUTDATED_LOCKFILE  Cannot install with "frozen-lockfile" because pnpm-lock.yaml is not up to date with web/.../package.json
Note that in CI environments this setting is true by default. If you still need to run install in such cases, use "pnpm install --no-frozen-lockfile"

문제의 원인은 최상위에 있는 pnpm-lock.yaml 파일이 있는데, 이게 있을 경우 CI/CD 할 때, 안에 있는 의존성 기준으로 설치를 하고, 의존성을 체크 한다.

그러지 않는다면, 개발하던 환경과 배포를 하던 중에 자동으로 의존성이 바뀌게 된다면, 배포 후에 끔찍한 버그들을 만날 수 있기 때문이다.

그런데 충돌이 일어난 건, CI/CD 환경에서 --frozen-lockfile가 기본값으로 활성화되어 있었다. 그러다 보니, pnpm-lock 파일과 package.json에 명시된 패키지 버전 간의 불일치가 발생했고, 해당 문제를 해결하라는 의미였다.

내가 개발하던 환경은 A라는 브랜치였고, 현재 우리팀은 develop 브랜치에 merge를 시키고, develop 브랜치를 배포하는 프로세스였다. 그러다 보니, A 브랜치는 괜찮았지만, 다른 브랜치들을 merge시키는 과정에서 버전 문제가 발생한것이였다.

해결 방법으로, develop 브랜치에서 pnpm install을 실행해 pnpm-lock.yaml 파일을 업데이트하고 이를 기준으로 배포를 진행했습니다. 이후 다른 브랜치가 develop 브랜치와 병합될 때 동일한 문제가 발생하지 않도록 pnpm-lock.yaml을 최신 상태로 유지했다.

profile
Javascript Developer

0개의 댓글