PnP
-
[Yarn berry] Yarn Berry의 문제점개발 블로깅/Improving Performance 2022. 10. 19. 20:14
모노레포로 사용 중인 Yarn berry 환경에서의 성능 개선을 위해 정말 이것저것 많은 노가다와 테스트를 삽질했다. 특히 pnp를 통한 zero install에 굉장히 많은 기대를 하며 기적 같은 속도 개선이 이루어지기를 바랬었다. 그러나 결론은 아래와 같다. Yarn Berry 환경 자체가 매우 느려서 성능을 개선할 수가 없다. 이전 블로그 포스팅에서도 작성했듯이, Yarn Berry 환경 자체는 단순히 자바스크립트 파일로만 동작하는 환경이다 보니, Yanr Classic 환경 위에서 또 하나의 작은 환경으로 Javascript 코드로 동작하게 된다. 실제 shell과 다이렉트로 동작하는 게 아니다 보니 우선 느린 요소가 생길 수밖에 없을 것 같긴 하다. Yarn install yarn Classic..
-
[Yarn berry] pnp가 Cypress환경에서 제대로 동작하지 않던 이슈 해결개발 블로깅/기타 개념 2022. 9. 25. 14:19
디펜던시 문제를 잘 해결하고 build와 run까지 문제없이 잘 돼서 이제 끝났나 싶었더니, 테스트 CI에서 뻥뻥 터지는 것을 발견했다. Cypress 환경에서 pnp를 사용하는 것에 대해 겪은 두가지 문제가 있었는데, 이에 대한 원인과 해결한 내용을 정리해 보려고 한다. cypress.config.ts 파일을 읽는데 .ts 확장자를 읽지 못하는 문제. 우선 pnp는 CommonJS를 Base로 동작하도록 되어 있고, 추가로 ESM 모듈 지원이 필요하다고 판단되면 추가 세팅이 되는 방식이다. 그래서 pnp install을 하면 루트 경로에 pnp.cjs(commonJS) 파일을 생기는데, 프로젝트 자체가 ESM 모듈 지원이 필요하다고 판단되면 pnp.loader.mjs 파일을 추가로 생성하도록 되어있다...
-
[Yarn berry] pnp(Plug And Play), Zero Install을 위한 Dependency 문제 해결하기개발 블로깅/기타 개념 2022. 9. 11. 22:30
이번에 프로젝트 빌드 환경을 개선시키기 위해 Zero install을 적용시키려고 한다. yarn berry 환경 세팅까지는 수월했으나, PnP(Plug In Play)을 통해 Zero install을 하려고 하니 Yarn에 대한 개념이 꽤나 필요했다. 그래서 이번에 Yarn Berry의 핵심 기능인 Plug In Play가 무엇인지 간단히 설명해보고, PnP를 통해 Zero Install을 하기 위해 우리가 해결해야 할 문제가 무엇인지 설명해 보려고 한다. Zero Install Zero Install은 말 그대로 설치를 하지 않고 이용하는 방식을 말한다. 기존에 node_modules에서 모든 디펜던시를 새로 인스톨하려고 하면, 모든 디펜던시 모듈이 인스톨에만 굉장히 많은 시간이 소모하게 된다. 그러..