Yarn
-
[Yarn berry] Yarn Berry Install 과정 파헤쳐보기개발 블로깅/기타 개념 2023. 1. 23. 21:47
CI 환경에서 Yarn Berry Install 시간을 줄이기 위해 이것저것 실험을 해보다 보니, install 시에 진행되는 과정에 대해 깊게 알아볼 수 있게 되었다. 사실 pnp를 이용해버리면 install 과정 자체를 줄일 수 있을 것이란 희망이 컸었으나, 실질적으로 우리 모노레포 환경과, 특히나 Cypress와 같이 현 로컬 환경의 바이너리 정보들이 필요로 한 환경에서는 pnp가 큰 의미가 없다는 것을 알게 되면서... 좌절..(관련 링크) 그럼에도 불구하고, 우리 환경에서 pnp가 아니더라도 CI 시간을 단축시키기 위한 여러 가지 테스트를 해보는 중이다. CI 단에서 돌아가는 큰 스텝은 아래와 같다. - yarn install - yarn build - run Test Code 그 중, 우선은 ..
-
[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] Yarn Berry 환경에 대한 이해도 높이기개발 블로깅/기타 개념 2022. 10. 9. 18:51
이번에 Yarn berry에서 이것저것 작업하게 되면서 Yarn Berry라는 환경에 대해 알게 된 내용들을 한번 정리해 보려고 한다. Yarn Berry 환경은 단순 자바스크립트 파일일 뿐이다. 이것을 설명하기 위해 우선 Yarn Classic 환경에 대해 먼저 다루어볼 필요가 있다. Yarn Classic을 먼저 알아보자. Yarn Classic 우리가 일반적으로 Yarn을 설치할 때는 Homebrew를 통해서 설치한다. Homebrew를 통해 설치하게되면, Yarn 패키지 자체는 우리 로컬 PC 내에서 Global Package 공간 어딘가에 저장이 되고 이후에 커맨드를 통해 실행시킬 수 있다. $ yarn add ... $ yarn remove ... 터미널에서 yarn으로 시작하는 명령어를 수행..
-
[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에서 모든 디펜던시를 새로 인스톨하려고 하면, 모든 디펜던시 모듈이 인스톨에만 굉장히 많은 시간이 소모하게 된다. 그러..
-
[2019.07.04] Gatsby - develop은 되지만, build 시 failed 날 때 해결 법개발 블로깅/기타 개념 2019. 7. 5. 00:02
3~4일 간 Gatsby를 이용하여 포트폴리오를 제작하였다. (죽는 줄...) 개발하는 동안 개츠비에 기본 스크립트 명령어로 되어있는 'npm run dev'로 작업물을 돌리면서 확인했다. 개발하는 중에는 문제가 없었는데, 오늘 배포를 시도하려고 build를 돌리니 아래와 같은 에러 메시지가 출력되었다. 'Error: original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an ob ject with emp..