JHyeok / JHyeok.com

Personal blog by JaeHyeok Kim
https://jhyeok.com
MIT License
1 stars 0 forks source link

yarn-sync-package-json/ #36

Closed utterances-bot closed 1 year ago

utterances-bot commented 2 years ago

yarn upgrade 사용할 때 package.json 파일 동기화 하기 — JHyeok

Gatsby를 기반으로 만들어진 이 블로그는 Yarn으로 프로젝트의 의존성을 관리하고 있다. 하지만 로 블로그의 의존성을 관리할 때 파일이 동기화되지 않는 것을 확인했다. 문제 살펴보기 이 문제와 관련해서 Yarn Github 저장소에서 2개의 Issue를 찾을 수 있었다. yarn…

https://jhyeok.com/yarn-sync-package-json/

ChoSeoHwan commented 2 years ago

좋은글 감사합니당~

다만 의문점이 생겨서 댓글 작성합니다.

dependency 를 설치 시에 기본적으로는 caret 방식으로 설치됩니다 yarn upgrade 시에는 자동으로 caret 방식 내 허용되는 latest 버전으로 업그레이드 하면서, yarn.lock 파일을 수정하게 되죠

여기에 굳이 package.json 이 수정되어야 하는가에 대해 의문이 생기게 됩니다. package.json 은 caret 에 의해 설치 가능한 버전이 명시되며, 실제 설치되는 패키지의 버전은 yarn.lock 에서 관리되기 때문이죠

라이브러리를 많이 사용할수록 upgrade 횟수도 많아지게될텐데, package.json 을 매번 sync 맞추는건 불필요하지 않나 싶습니다.

JHyeok commented 2 years ago

@ChoSeoHwan 안녕하세요. 팀 내에서 비슷한 질문을 받은 적이 있습니다. 캐럿 방식이기 때문에 허용하는 버전이 설치되는 방식인데 굳이 package.json의 싱크를 맞추어야 하는지 말이죠.

저는 package.json만 확인하고 해당 프로젝트가 어떤 의존성을 가지고 있는지 한눈에 파악하기 위함인 것 같아요. yarn.lock의 파일을 사람이 보고 해당 프로젝트의 의존성을 바로 파악하기에는 어렵다고 생각합니다.

제가 질문해주신 upgrade 횟수가 많아진다는 것을 잘못 이해했을 수도 있는데요, https://github.com/JHyeok/JHyeok.com/commit/525b29d38e4784da98c5280c861e67c145ae30af 는 위의 내용대로 의존성을 업그레이드 한 커밋입니다. 라이브러리가 많아도 실제로 sync를 맞추는 syncyarnlock -s -k 명령어는 한 번 사용했습니다.