https://facebook.com/groups/graphql-kr logo
#질문
Title
# 질문
u

undefined

12/16/2020, 1:50 AM
Rescript와 ReasonML 에 관한 좋은 영상이나 아티클이 있을까요? 아니면 공식 문서만 보면 될까요?
h

Hyeseong Kim

12/16/2020, 2:22 AM
u

안정현 (Siner)

12/19/2020, 12:37 PM
@Hyeseong Kim 백엔드를 주로 사용해서 reason은 아직 사용해보지 못했지만 reason-seoul 레포에 언급되어있는 pnpm이 궁금하여 조사해보니 참 좋네요! 의도치않은 pnpm 입문 도와주셔서 감사합니다 ㅋㅋㅋ 조사하면서 블로그에 글 한번 써봤네요 https://blog.siner.io/2020/12/19/npm-vs-yarn-vs-pnpm
👏 1
👍 1
h

Hyeseong Kim

12/19/2020, 1:36 PM
사실 전 yarn 2 를 더 좋아하는데요 ㅋㅋ
Yarn 2 pnp mode는 rescript 랑 호환이 안되는지라 pnpm 썻어요
백엔드에서도 rescript 쓸 수 있어요!
u

안정현 (Siner)

12/20/2020, 9:17 AM
지금까지 yarn 1.21.1 쓰고있었네요 2도 한번 알아봐야겠군요 ㅋㅋ
rescript도 찾아볼게요!
u

undefined

12/21/2020, 5:36 AM
yarn2 나 pnpm이 실무에서 사용할 만한가요?
h

Hyeseong Kim

12/21/2020, 6:50 AM
맨날 쓰는데요 뭐
레졸루션 이상하게 처리하는 프레임웍 의존하는거만 아니면 별 이슈 없어용
u

undefined

12/21/2020, 6:51 AM
오 그렇군여 감사합니다 ㅎㅎ 그런 가정이라면 웬만해선 yarn2 pnpm 쓰는게 낫겠군여
근데 그러면 2가지 질문이 있는데 1. pnpm vs Yarn 2 중에 뭘 더 선호하시나요? 2. 두 개를 사용하다가 해결할 수 없는 이슈가 있을 때 다시 npm/yarn 으로 복원하기 쉽나요?
h

Hyeseong Kim

12/21/2020, 8:05 AM
1. yarn2를 선호합니다. yarn 2를 쓸 수 없는 종류의 프로젝트에 pnpm을 씁니다. npm 은 근 1년간 사용한적이 없고 예전 프로젝트도 최소한 yarn 1을 쓰고 있습니다. 2. 네 뭐 하려면 메타파일지우고 install 다시 돌리는게 끝이긴 합니다. yarn 2의 경우 동작방식이 다른데 패키지마다 레졸루션 방식을 yarn 1과 동일하게 하도록 일일히 커스터마이징이 가능하기 때문에 크게 이슈 없습니다
npm을 비선호하는 이유: • NPM이 가진 기술적인 로드맵에 동의하지 않습니다. 특히 peerDeps 처럼 고질적인 문제는 다른 대안 패키지매니져들이 좋은 방향으로 고치려고 노력을 쏟음에도 불구하고 지원은 커녕 안좋은 선택을 반복하고 있습니다 • 버그가 많습니다. 이건 뭐.... 왜 그런지는 코드 베이스 구경갔다 오면 이해가 되는 부분이긴 합니다 • 큰 코드베이스랑 많은 의존성을 관리하기 위해 필수적인 기능들이 많이 누락되어 있습니다 (yarn의 why, conflict resolutions, yarn 2 의 portal 등) • 확장 가능하지 않습니다. • 기능 추가가 느립니다. (npm 7이 되어서야 워크스페이스 기능이 생김... 그마저도 버그투성이) • 느립니다
yarn 2 선호하는 이유: • pnp... 말이 필요하겠습니까. node_modules 피할수 있다면 피해야 합니다 • predictable 합니다. • 아키텍처와 코드베이스 퀄리티가 훌륭합니다 • 플러그인 방식으로 확장 가능합니다. 개인적으로 커맨드 확장해서 사용하기도 하고 이후로도 계속 그럴 계획입니다. • 이외 실험적으로 제공하는 부분들이 inspiration 이 됩니다. 모노레포 관리하는 실험적 워크플로우도 꽤 인상적입니다.
pnpm 선호하는 이유: • Flow나 ReScript 처럼 패키지들이 Yarn 2 pnp 와 호환되지 않는 경우, 일일히 unplug 하는것도 의미없으니 그냥 첨부터 pnpm 씁니다 • 절대적인 성능우위에 있습니다. resolution 계산이랑 install 조차 concurrent 하게 돌거든요. • 글로벌 패키지 깔 때도 IO효율이 좋은 pnpm, pnpx (npx 대안) 사용합니다
u

undefined

12/21/2020, 8:13 AM
오 자세한 설명 감사합니다! 🙂 저도 혜성님 말씀하신 부분들이랑 좀 더 리서치 해서 알아보겠습니다! Yarn 2 를 우선순위로 가져가는 선택을 해야겠군요.