서론
우선 해당 내용에 대해 간략하게 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를 사용하는 방법을 중심으로 설명했으며, 각 프로젝트의 요구 사항에 따라 적절한 설정을 적용하시길 바랍니다.
'개인 공부' 카테고리의 다른 글
CORS(Cross-Origin Resource Sharing)란 정확히 무엇입니까? (2) | 2024.05.03 |
---|---|
비동기 프로그래밍으로 효율성 극대화 (0) | 2024.04.16 |
Yarn과 Npm 패키지를 이해하기 위해서 둘의 차이점은?! (0) | 2024.03.13 |
Mac에서 컨트롤 + 좌클릭시 문제점 해결방안 (1) | 2023.10.18 |
[SEO] SEO 검색엔진이란 무엇인가??? (0) | 2023.10.13 |