yarn 과 npm 의 버전을 다루는 형태에 차이가 있었다.
Updated package.json version from 2.13.10.0 to: 2.13.10.0.08191009 npm_package_version 2.13.1-0.0.8191009
이상하게 하이픈이 들어가는 문제가 있었다. 처음에는 뒤에 날짜 정보를 붙이면서 버그가 발생한 줄 알았다. 하지만 yarn 의 버전 체계가 npm 과 달라서 생긴 문제라고 클로드는 설명했다.
yarn 의 주소체계
2.13.10.0+08191030
2.13.10.0.08191030
2.13.10.008191030
이 형태들 모두 3번째 버전에 하이픈이 들어간 버전( 2.13.1-0.12345 )으로 바뀌어버린다. 심지어 4번째 버전의 0은 패딩됨.
- npm: 2.13.10.008191030 (그대로 유지)
- yarn: 2.13.1-0.8191030 (하이픈으로 변환)
2.13.10.0-dev.08191030 -> 2.13.1-0.0-dev.8191030 2.13.10-dev.08191030 -> 2.13.10-dev.08191030 (동일)
Semantic Versioning 2.0.0
semver.org
Semantic Versioning 2.0.0
Semantic Versioning spec and website
표준 형식: MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD] 4자리 이상의 버전들은 모두 prerelease 로 변환해버린다.
yarn 의 patch 버전 처리 버그 (yarn 1.22.22)
| 입력 버전 | 예상 결과 | 실제 결과 | 문제 |
|---|---|---|---|
| 2.13.10.0.8191030 | 2.13.10-0.8191030 | 2.13.1-0.0.8191030 | ❌ patch가 10→1로 변경 |
| 2.13.10.8191030 | 2.13.10-8191030 | 2.13.1-0.8191030 | ❌ patch가 10→1로 변경 |
| 2.13.11.0.8191030 | 2.13.11-0.8191030 | 2.13.1-1.0.8191030 | ❌ patch가 11→1로 변경 |
| Patch가 잘못됨: 10 → 1, 11 → 1 |
yarn set version stable
yarn 을 업데이트하는 방법도 있다.
| Yarn 버전 | 입력 버전 | 결과 | 상태 |
|---|---|---|---|
| 1.22.22 | 2.13.10.0.8191030 | 2.13.1-0.0.8191030 | ❌ 버그 |
| 1.22.22 | 2.13.11.0.8191030 | 2.13.1-1.0.8191030 | ❌ 버그 |
| 4.9.2 | 2.13.10.0.8191030 | 2.13.10.0.8191030 | ✅ 정상 |
| 4.9.2 | 2.13.11.0.8191030 | 2.13.11.0.8191030 | ✅ 정상 |
| 4.9.2 에서는 아예 하이픈을 넣지도 않고 있다. |
!error Yarn 4.9.2 버전 사용하는 순간 에러가 해결되지 않음 Internal Error: project@workspace:.: This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile 아무리 해결을 하려고 해도 yarn 4.9.2 버전을 사용할 때 문제가 발생한다.
댓글 0개