오늘의 명언
“ 당신은 소프트웨어 품질을 추구할 수도 있고, 포인터 연산을 할 수도 있다. 그러나 두 개를 동시에 할 수는 없다. ”
-
베르트랑 마이어 (Bertrand Meyer)
300x250
yarn
yarn은 JavaScript 프로젝트의 종속성을 관리하는 데 사용되는 확립된 오픈 소스 패키지 관리자입니다.
패키지 종속성을 설치, 업데이트, 구성 및 제거하는 프로세스를 지원하여 결과적으로 방해 요소를 줄이고 목표를 더 빠르게 달성할 수 있도록 도와줍니다.
- Lock 파일: Yarn은 yarn.lock 파일을 사용하여 프로젝트 의존성을 정확하게 관리합니다. 그래서 프로젝트를 다른 환경에서 빌드할 때 버전 충돌을 방지할 수 있습니다.
- 병렬 설치: Yarn은 의존성을 병렬로 설치하여 더 빠른 설치 속도를 제공합니다.
- 캐시 기능: Yarn은 이전에 설치한 패키지를 캐시 하여, 같은 패키지를 다시 설치할 필요가 없도록 도와줍니다.
yarn berry
yarn Berry는 yarn 2.0 버전부터 등장한 새로운 버전의 yarn입니다. yarn Berry는 이전 버전의 yarn과 몇 가지 중요한 차이가 있습니다.
- Plug'n'Play (PnP): Yarn Berry는 Plug'n'Play 기능을 도입하여 의존성을 더 효율적으로 관리합니다. 이로써 node_modules 폴더가 더 이상 필요하지 않으며, 디스크 공간을 절약할 수 있습니다.
- Zero-installs: Yarn Berry는 zero-installs를 지원하여 프로젝트의 의존성을 전역으로 설치하지 않고도 사용할 수 있습니다. 이것은 빠른 시작과 업데이트를 가능하게 합니다.
- 성능 향상: Yarn Berry는 이전 버전에 비해 훨씬 빠르고 효율적인 성능을 제공합니다.
Corepack
Yarn을 관리하는 가장 좋은 방법은 16.10부터 모든 Node.js 릴리스와 함께 제공되는 새로운 바이너리인 Corepack을 사용하는 것입니다. 이는 사용자와 Yarn 사이의 중개자 역할을 하며 더 이상 Yarn 바이너리를 체크인할 필요 없이 여러 프로젝트에서 다양한 패키지 관리자 버전을 사용할 수 있게 해 줍니다.
NodeJS 16.10 이상
Corepack은 16.10 이상부터 모든 Node.jS 릴리스와 함께 제공되어 아래 명령어로 활성화하시면 됩니다.
corepack enable
NodeJS 16.10 미만
Corepack은 16.10 이전 버전의 Node.js에 포함되어 있지 않습니다 그래서 아래 명령어로 설치합니다.
npm i -g corepack
yarn 전역 버전(글로벌) 업데이트
// stable version
corepack prepare yarn@stable --activate
// 버전 명시하여 설치
corepack prepare yarn@<version> --activate
yarn 프로젝트 초기화
npm init과 같은 거라고 생각하면 됩니다.
yarn init -2
프로젝트에서(Next, Nuxt 등) yarn 버전 설치
yarn set version stable
Zero Install
"Zero install"는 패키지 매니저가 프로젝트의 의존성을 글로벌 또는 로컬 시스템 디렉터리에 설치하지 않고 필요한 패키지를 직접 프로젝트 디렉터리 내에서 관리하는 기술을 가리킵니다. 이로써 프로젝트의 의존성을 더 효율적으로 관리하고 프로젝트 간의 의존성 충돌을 방지할 수 있습니다. Zero install는 주로 Yarn Berry와 같은 패키지 매니저에서 지원됩니다.
프로젝트에 yarn으로 설정을 하게 되면 루트 경로에. yarnrc.yml이라는 파일이 생깁니다. 이 파일은 yarn config 관련 내용들을 설정할 수 있는 파일입니다.
yarn 4.0.1 버전으로 사용 중인데. 아래 설정은 node_modules가 필요할 경우 설정하시면 될 거 같습니다.!!
// .yarnrc.yml
// 예를들면 아래와 같이 설정
nodeLinker: "pnp" // pnp(default), pnpm, node_modules 중 설정
공식 사이트 설정방법을 참고하세요.
Zero install 사용할 경우 gitignore
.yarn/*
!.yarn/cache
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
Zero install 사용하지 않을 경우 gitignore
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
에러 관련
yarn set version stable로 최신 버전을 설치하고 나서
yarn 명령어로 package.json 설치하려고 할 때 Usage Error: The nearest package directory 에러가 나올 때 해결방법은
아래 명령어로 yarn.lock파일을 생성하고 다시 시도해 봅니다.
touch yarn.lock
인텔리제이나 vsCode에서 yarn 또는 yarn install로 모듈 설치 시 아래와 같은 에러가 난다면
Usage Error: This tool requires a Node version compatible with >=18.12.0 (got 16.20.2). Upgrade Node, or set `YARN_IGNORE_NODE=1` in your environment.
해당 툴 터미널에서 node -v 명령어로 버전 확인해 보시면 됩니다. nvm을 쓰실 경우 nvm ls로 현재 선택되어 있는 버전 보시면 되고요 위에 에러내용대로 18.12.0 버전 이상으로 설치해서 설정하시면 됩니다. 맥 환경 인텔리제이에서 nvm node 버전을 못 찾는 경우가 있는데 한번 확인해 보시고 설정하시면 됩니다.
반응형
잘못된 내용이 있으면 댓글 부탁드립니다. 감사합니다.