개인 공부

Yarn으로 NodeModules를 설치했는데 알고보니 Yarn v3라서 설치가 안되고 있다면?

HA젠옹 2025. 1. 7. 11:25
반응형

서론

우선 해당 내용에 대해 간략하게 Yarn이 무엇인지? 그리고 최근에 업데이트가 된 Yarn v3가 무엇이길래 차이가 있는지에 대해 알아보고 해결 방법을 찾아겠습니다.

Yarn이란?

Yarn은 Facebook에서 개발한 패키지 매니저로, JavaScript 및 Node.js 프로젝트에서 의존성을 효율적으로 관리하도록 설계되었습니다. 주요 특징은 다음과 같습니다.

  • 빠른 속도
  • 일관된 설치 환경
  • 네트워크 복원성
  • 병렬 설치 기능

Yarn v3란?

Yarn v3는 Yarn의 최신 주요 버전으로, 이전 버전과 비교하여 다양한 혁신적인 기능과 성능 개선을 포함하고 있습니다. 특히 Plug'n'Play(PnP)와 같은 새로운 종속성 관리 시스템을 도입하여 의존성 설치 및 관리 방식을 크게 변경했습니다

 

Yarn v1 vs Yarn v3 장단점 비교

속도 빠름 더 빠름
호환성 npm과 완전 호환 PnP 도입으로 일부 호환성 문제 발생
설치 구조 node_modules 디렉토리 사용 Plug'n'Play 기본 설정
설정 복잡도 간단 상대적으로 복잡
메모리 사용량 비교적 높음 낮음
장점 익숙한 구조, 간단한 설정 더 나은 성능, 종속성 충돌 감소
단점 종속성 충돌 가능성 초기 설정 및 호환성 문제

 

Yarn v3에서 Node Modules 설치 방법

Yarn v3에서 node_modules를 사용할 수 있도록 설정하기 전에 다음 내용을 우선 확인 해봅니다.

1. .yarnrc.yml 파일 생성 또는 확인

.yarnrc.yml 파일이 보이지 않을 경우

  • 숨겨진 파일 확인
    • Linux/macOS:
ls -a
    • Windows: 파일 탐색기에서 보기 > 숨긴 항목을 활성화하세요.
  • 파일 생성: 파일이 없는 경우 프로젝트 루트 디렉토리에서 새로 생성하면 됩니다.
touch .yarnrc.yml  // 직접 파일 생성
  • 글로벌 설정 확인: 사용자 홈 디렉토리에서 글로벌 .yarnrc.yml 파일이 존재하는지 확인합니다.
    • Linux/macOS: ~/.yarnrc.yml
    • Windows: C:\Users\사용자명\.yarnrc.yml
  • 환경 변수 확인: Yarn 설정 경로가 올바른 위치에 없을 수 있으니 확인 해봅니다.

2. 설정 추가

.yarnrc.yml 파일에 다음 내용을 추가하여 node_modules 구조를 사용하도록 설정합니다.

nodeLinker: node-modules

3. 의존성 재설치

설정을 완료한 후 다음 명령어를 실행하여 의존성을 다시 설치합니다.

yarn install

이 명령어는 node_modules 디렉토리를 생성하고 모든 종속성을 설치합니다.

node_modules 디렉토리가 생성되었는지 확인하고 필요한 패키지가 설치되었는지 확인합니다.

추가 고려 사항

  • Plug'n'Play(PnP): PnP를 활용하면 node_modules를 생성하지 않고도 빠르게 의존성을 관리할 수 있지만, 일부 도구와의 호환성 문제가 발생할 수 있습니다.
  • 호환성 문제 해결: PnP와 호환되지 않는 도구를 사용하는 경우 nodeLinker: node-modules 설정하여 사용합니다.
  • Yarn Berry 문서 참조: 자세한 설정 및 기능은 Yarn 공식 문서를 참고해주세요.
 

Home page | Yarn

Yarn, the modern JavaScript package manager

yarnpkg.com

결론

Yarn v3는 성능과 관리 효율성을 크게 개선했지만, 초기 설정이나 호환성 문제를 고려해야 하는 부분이 존재하기 때문에 번거롭게 Yarn v3 꼭 사용해야 할 필요가 없다면 아직까지 이전 버전을 사용해도 크게 상관없다고 봅니다.
해당 내용은 순수 Yarn v3에서도 node_modules를 사용하는 방법을 중심으로 설명했으며, 각 프로젝트의 요구 사항에 따라 적절한 설정을 적용하시길 바랍니다.

반응형