최신 자바스크립트 프로젝트를 위한 Yarn 설치 및 사용 방법

마지막 업데이트 : 04/24/2026
  • Yarn은 두 단계 모델을 사용합니다. 하나는 전역 CLI이고 다른 하나는 일관된 동작을 위해 프로젝트에 고정된 버전입니다.
  • yarn.lock을 사용한 결정론적 설치와 적극적인 캐싱은 빠르고 재현 가능한 종속성 관리를 제공합니다.
  • 최신 Yarn Berry는 PnP, 워크스페이스 및 .yarnrc.yml을 추가하여 유연한 링크, 캐싱 및 편집기/CI 통합을 지원합니다.
  • 올바른 PATH 설정, 잠금 파일 처리 및 캐시 관리는 일반적인 설치 문제를 방지하는 데 필수적입니다.

Yarn JavaScript 설치

자바스크립트 프로젝트에 Yarn을 설치하려고 하는데 너무 많은 옵션 때문에 혼란스럽다면, 당신만 그런 게 아닙니다. Yarn은 최근 몇 년 동안 많은 발전을 이루었으며, npm과 공존하고 있고, 운영 체제와 사용하는 프로젝트 스타일(모노레포, PnP, 기존 node_modules 등)에 따라 다양한 버전과 설치 방식이 존재합니다.

다행인 점은 Yarn 설치 방법과 2단계 모델(전역 CLI + 프로젝트별 Yarn) 작동 방식을 이해하고 나면 모든 것이 명확해진다는 것입니다. 이 가이드에서는 가장 일반적인 시스템에 Yarn을 설치하는 방법, 실제 JavaScript 프로젝트에 Yarn을 통합하는 방법, npm과의 차이점, 그리고 Yarn을 처음 사용할 때 흔히 발생하는 문제를 해결하는 방법을 자세히 살펴보겠습니다.

Yarn이란 무엇이며 자바스크립트 프로젝트에서 여전히 중요한 이유는 무엇일까요?

Yarn은 속도, 보안 및 예측 가능한 설치라는 세 가지 주요 목표를 염두에 두고 설계된 Node.js용 패키지 관리자입니다. Yarn은 npm이 성능과 안정성 문제를 겪던 시기에 npm의 대안으로 탄생했으며, 그 이후로 npm이 많이 개선되었음에도 불구하고 특히 React 및 최신 프런트엔드 스택 분야에서 여전히 매우 인기가 높습니다.

Yarn의 핵심 강점 중 하나는 결정론적인 설치 프로세스입니다. yarn.lock 파일. 이 파일은 모든 직접 및 간접 종속성의 정확한 버전을 수정하여, 서로 다른 컴퓨터나 CI 서버에 설치하더라도 항상 동일한 종속성 트리가 생성되도록 함으로써, "내 노트북에서만 작동하는데"라는 고질적인 문제를 해결합니다.

또 다른 특징은 Yarn이 이미 다운로드한 패키지를 재사용할 수 있도록 하는 적극적인 캐싱 동작입니다. 이 덕분에 반복 설치 속도가 훨씬 빨라졌으며, 필요한 패키지가 모두 사전에 캐시된 경우 Yarn은 오프라인 모드에서도 작동할 수 있습니다.

최신 Yarn(버전 2.x, 3.x 및 4.x에서는 흔히 "Berry"라고 불림)은 Plug'n'Play(PnP) 및 워크스페이스와 같은 고급 기능을 추가로 제공합니다. PnP는 기존의 방식을 완전히 없앨 수 있습니다. node_modules 폴더를 매니페스트 파일로 교체하여 Node.js에 각 패키지의 정확한 위치를 알려주는 방식을 사용하면 디스크 공간을 크게 절약하고 일부 작업 속도를 향상시킬 수 있습니다. 반면 워크스페이스는 모노레포에 적합하며, 공유 잠금 파일과 중앙 집중식 종속성 관리를 통해 단일 저장소의 여러 패키지를 연결합니다.

보안 관점에서 Yarn은 모든 패키지가 실행되기 전에 체크섬을 검증합니다. 이 무결성 검증은 손상되거나 변조된 아티팩트에 대한 추가적인 보호 계층을 제공하며, 특히 기업 환경이나 민감한 환경에서 유용합니다.

얀 클래식과 얀 베리(모던 얀)의 차이점 이해하기

얀 클래식 앤 베리

설치에 대해 이야기하기 전에 Yarn에는 크게 두 가지 제품군, 즉 Classic(1.x)과 Berry(2.x/3.x/4.x)가 있다는 점을 이해하는 것이 중요합니다. Yarn Classic은 자체적인 히스토리 저장소에 보관되며 보안 수정 사항만 제공받는 반면, 모든 활발한 개발은 최신 Berry 제품군에 집중되어 있습니다. yarnpkg/berry 레포.

Yarn Classic(약 1.22 버전)은 글로벌 버전을 설치할 때 대부분의 사용자가 여전히 받게 되는 버전입니다. yarn npm을 사용하는 CLI. 현재 글로벌 CLI는 주로 실행기 역할을 합니다. Berry로 구성된 프로젝트 내에서 글로벌 명령은 단순히 로컬 프로젝트별 Yarn 버전으로 실행을 위임하므로 글로벌 도구를 건드리지 않고도 프로젝트 도구 체인을 업그레이드할 수 있습니다.

Yarn Berry는 특히 Plug'n'Play 및 강력한 플러그인 시스템을 비롯한 심층적인 아키텍처 변경 사항을 도입했습니다. 기본적으로 Berry는 PnP를 선호합니다. node_modules제로 설치 워크플로우(종속성이 저장소에 커밋됨)를 지원하고, 세부적인 구성을 허용합니다. .yarnrc.yml모듈 연결 방식, 캐시 관리 방식, 레지스트리 및 프록시 정의 방식 등을 포함합니다.

Yarn 개발자들은 가능하면 1.x 버전에서 최신 Berry 릴리스로 마이그레이션할 것을 강력히 권장합니다. 최신 버전은 더 오랫동안 활발하게 유지 관리되어 왔으며, 기존 버전에 존재했던 여러 문제점을 해결하고, 다양한 구성 옵션을 제공합니다. nodeLinker 설정을 통해 기존 버전을 계속 사용할 수 있습니다. node_modules PnP가 적합하지 않은 경우 레이아웃 또는 pnpm 스타일의 심볼릭 링크를 사용합니다.

만약 여러분의 생태계나 도구가 아직 PnP를 지원할 준비가 되어 있지 않더라도, 걱정할 필요는 없습니다. 간단히 설정함으로써 nodeLinker: node-modules in .yarnrc.ymlBerry는 기존의 npm 설치 방식과 유사하게 동작하면서도 결정론적 잠금 파일, 캐싱 동작, 향상된 CLI 환경을 유지합니다.

시스템 요구사항 및 글로벌 원사 설치 전략

사용하는 운영체제와 관계없이 Yarn을 사용하기 위한 필수 조건은 Node.js가 설치되어 있어야 한다는 것입니다. Yarn은 Node 기반 CLI이며 실행하려면 Node가 필요합니다. 따라서 먼저 Node가 사용 가능한지 확인해야 합니다. node -v 터미널에서 확인하세요. "명령을 찾을 수 없음" 오류 대신 버전 번호가 표시되면 정상적으로 진행된 것입니다.

Node.js가 없거나 구버전인 경우, 사용 중인 플랫폼에 권장되는 방법을 사용하여 설치 또는 업그레이드하십시오. Linux에서는 배포판 패키지나 NodeSource 저장소를 사용할 수 있고, macOS에서는 Homebrew, MacPorts 또는 nvm을 선호할 수 있으며, Windows에서는 공식 설치 프로그램이나 Chocolatey 또는 Scoop과 같은 패키지 관리자를 사용할 수 있습니다. 많은 Yarn 워크플로는 최소 Node 14.18 버전을 전제로 하며, Berry의 경우 Node 16 또는 18 LTS 버전이 일반적으로 가장 적합합니다.

Yarn 개발자들은 2단계 설치 모델을 권장합니다. 먼저 글로벌을 설치합니다. yarn CLI를 한 번만 실행하고(대부분 npm을 통해), 각 프로젝트 내에서 해당 전역 명령어를 사용하여 저장소에 프로젝트별 Yarn 버전을 구성합니다. 이렇게 하면 모든 기여자와 CI 작업이 프로젝트에서 정의한 것과 정확히 동일한 Yarn 버전을 실행하게 됩니다.

npm을 통해 Yarn CLI를 전역적으로 설치하는 것은 간단합니다. npm은 Node.js에 기본적으로 포함되어 있으므로 다음 명령을 실행할 수 있습니다.

sudo npm install -g yarn

설치가 완료되면 글로벌 CLI에 접속할 수 있는지 확인하십시오. 운영:

yarn --version

만약 당신이 다음과 같은 것을 본다면 1.22.x즉, 글로벌 클래식 런처가 제대로 작동하는 것입니다. 이제부터 Berry를 사용하는 프로젝트에 참여하면 이 전역 명령이 저장소에 저장된 로컬 Yarn 릴리스에 제어권을 투명하게 넘겨줍니다.

특정 자바스크립트 프로젝트에 Yarn 설치하기

글로벌 CLI가 준비되었으므로 다음 단계는 각 프로젝트에 특정 Yarn 버전을 "고정"하는 것입니다. 이것이 바로 팀원들의 컴퓨터와 CI/CD 파이프라인 전반에서 일관성을 보장하는 핵심입니다. 모두가 동일한 Yarn 바이너리를 실행하므로 동일한 동작을 공유하게 됩니다.

먼저 프로젝트 디렉토리로 이동하세요(새로운 앱을 개발하는 경우 새 디렉토리를 생성하세요). 예 :

mkdir my-project
cd my-project

해당 폴더 안에서 특수 기능을 사용하세요. yarn set version 최신 Berry 릴리스를 선택하는 명령입니다. 일반적으로는 활발하게 개발 중인 "베리" 라인을 추적하는 방식을 선택합니다.

yarn set version berry

Yarn은 내부적으로 "berry"를 최신 Berry 바이너리로 해석하고, 이를 다운로드하여 내부에 저장합니다. .yarn/releases 프로젝트 내의 디렉토리입니다. 동시에, 그것은 생성하거나 업데이트합니다. .yarnrc.yml 프로젝트 루트에 있는 파일을 수정하여 전역 실행기가 해당 로컬 바이너리에 실행을 위임하도록 합니다.

지금 실행하면 yarn --version 프로젝트 내부에서 다시 실행하면 출력 결과가 프로젝트에 고정된 버전으로 변경됩니다. 다음과 같은 것을 보게 될 수도 있습니다. 4.5.0 또는 다른 3.x/4.x 릴리스를 표시하면 더 이상 전역 Classic CLI를 사용하지 않고 저장소에 호스팅된 로컬 Berry CLI를 사용하고 있음을 나타냅니다.

이 시점부터 해당 디렉터리(또는 하위 디렉터리)에서 실행되는 모든 Yarn 명령은 프로젝트별 Yarn 버전을 사용하게 됩니다. 이를 통해 팀은 개발자 컴퓨터에 단일 글로벌 런처를 설치한 상태에서도 다양한 프로젝트를 자체 속도에 맞춰 최신 Yarn 릴리스로 점진적으로 마이그레이션할 수 있습니다.

일상적인 개발을 위한 핵심 실 명령어

Yarn을 설치하고 프로젝트에 연결하면 대부분의 일상적인 작업을 처리하는 데 필요한 명령어는 몇 가지에 불과합니다. CLI는 기능이 방대하지만, 몇 가지 하위 명령만으로도 종속성 및 스크립트 관리에 상당한 도움이 됩니다.

막히거나 더 많은 옵션을 살펴보고 싶을 때는 언제든지 모든 명령에 도움말 플래그를 사용할 수 있습니다. 달리는:

yarn --help

일반 도움말을 출력하는 동시에 내용을 추가합니다. --help 특정 하위 명령을 실행하면 상황에 맞는 사용 팁이 표시됩니다. 예를 들어, yarn install --help 종속성 설치 프로세스에 사용할 수 있는 모든 플래그를 설명합니다.

새 프로젝트를 시작하려면 Yarn에게 기본 구성 파일을 생성하도록 요청할 수 있습니다. 빈 폴더 안에서 다음 명령어를 실행하세요:

yarn init

해당 명령어를 실행하면 몇 가지 안내 메시지가 나타나고 내용이 기록됩니다. package.json 플러스 yarn.lock 파일. 전자는 프로젝트 메타데이터, 스크립트 및 종속성을 선언하고, 후자는 Yarn이 설치 시 확인한 정확한 버전에 대한 표준 기록 역할을 합니다.

Yarn을 이미 사용하고 있는 기존 저장소에 참여할 때, 일반적으로 가장 먼저 해야 할 일은 모든 종속성을 설치하는 것입니다. 프로젝트 루트 디렉토리에서 다음 명령을 실행하면 됩니다.

yarn install

실은 다음과 같이 읽습니다. package.json yarn.lock누락된 파일을 다운로드하고 종속성 트리를 설정합니다. 캐싱 덕분에 이후 설치는 CI 환경에서도 초기 설치보다 훨씬 빠르게 진행됩니다.

새로운 종속성을 추가하는 것 또한 마찬가지로 간단합니다. add 하위 명령. 예를 들어 Express를 설치하려면 다음과 같이 하면 됩니다.

yarn add express

이 단일 명령으로 패키지를 가져오고 업데이트할 수 있습니다. package.json 그리고 새롭게 합니다 yarn.lock. JSON 파일을 수동으로 편집할 필요가 없습니다. Yarn은 선언된 범위와 잠긴 버전을 자동으로 동기화합니다.

간단한 정상 작동 점검: Yarn을 사용하는 소규모 Express 서버

Yarn이 의도한 대로 작동하는지 확실히 확인하고 싶다면 Express를 사용하여 간단한 테스트를 작성해 볼 수 있습니다. 프로젝트 내부에 있고 이미 실행을 완료했다고 가정합니다. yarn add express, 라는 이름의 파일을 만듭니다. index.js 다음과 같은 최소 사양의 서버를 사용합니다.

const express = require("express");
const app = express();

app.get("/", (req, res) => res.send("Yarn is working!"));

app.listen(3000, () => console.log("Server running on http://localhost:3000"));

Node를 직접 호출하는 대신 Yarn을 통해 이 스크립트를 실행할 수 있으며, 이는 PnP 환경에서 편리할 수 있습니다. 사용

yarn node index.js

다른 터미널을 열고 서버가 올바르게 응답하는지 확인하십시오. 간단히 말해서:

curl http://localhost:3000

"Yarn이 작동 중입니다!"라는 메시지를 반환해야 합니다. 만약 그렇게 된다면, Yarn이 종속성을 해결하고 모듈 해결을 연결했으며 아무 문제 없이 스크립트를 실행했다는 것을 알 수 있습니다.

종속성, 스크립트 및 Yarn 캐시 관리

Yarn은 설치 및 기본 추가 기능 외에도 의존성 그래프를 깔끔하게 유지 관리하고 발전시킬 수 있는 여러 유틸리티를 제공합니다. 이러한 명령은 수동 편집을 방지하고 package.json yarn.lock 언제나 일관성을 유지합니다.

더 이상 필요하지 않은 종속성을 제거하려면 다음을 사용하십시오. remove 하위 명령. 예 :

yarn remove package-name

Yarn은 패키지를 제거하고 목록에서 삭제합니다. package.json그리고 그에 따라 잠금 파일을 업데이트하십시오. 이렇게 하면 더 이상 사용되지 않거나 쓸모없는 모듈이 종속성 트리에 남아 있는 것을 방지할 수 있습니다.

종속성 업그레이드는 일괄적으로 또는 특정 패키지에 대해 수행할 수 있습니다. 인수 없이,

yarn upgrade

지정한 범위에 따라 호환되는 최신 버전을 찾아줍니다.

yarn upgrade package-name

단일 종속성을 대상으로 합니다. 두 경우 모두 Yarn은 내용을 다시 작성합니다. yarn.lock 업데이트된 종속성 그래프를 반영하기 위해서입니다.

프로젝트에서 스크립트를 정의할 때 package.json얀의 run 서브커맨드는 그것들을 실행하는 방법입니다. 다음과 같은 스크립트:

"scripts": {
  "start": "node index.js"
}

다음 명령어로 실행할 수 있습니다:

yarn run start

그리고 많은 경우 더 짧은 것이 yarn start 별칭도 작동합니다. 이는 기본 모듈 연결 전략과 관계없이 Node 또는 다른 도구 위에 깔끔한 추상화 계층을 제공합니다.

Yarn은 설치 속도를 높이고 오프라인 동작을 제공하기 위해 이전에 다운로드한 모든 패키지의 로컬 또는 글로벌 캐시를 유지합니다. 특히 실험이나 여러 버전 전환 후에 캐시가 노이즈가 쌓이거나 손상될 수 있습니다. 캐시에 문제가 있다고 의심될 때는 다음 명령으로 캐시를 재설정할 수 있습니다.

yarn cache clean

Yarn이 캐시된 아티팩트를 어디에 저장하는지 궁금하시다면, yarn cache dir 위치를 출력합니다. 이 기능은 특히 Windows에서 백신 프로그램의 캐시 폴더를 화이트리스트에 추가하여 다운로드한 모든 파일을 과도하게 검사함으로써 설치 속도가 느려지는 것을 방지할 때 유용합니다.

.yarnrc.yml 파일을 사용하여 Yarn 구성하기

최신 Yarn은 프로젝트 구성을 중앙 집중화합니다. .yarnrc.yml 파일. 이 YAML 문서는 종속성 연결 방식, 캐시 위치, PnP 적용 강도, 레지스트리 URL, 원격 측정 등을 제어합니다.

일반적인 구성은 다음과 같습니다.

nodeLinker: pnp
pnpMode: strict
compressionLevel: mixed
enableGlobalCache: true
enableTelemetry: false

The nodeLinker 설정은 모듈이 어떻게 해석되는지를 정의하기 때문에 특히 중요합니다. 유효한 옵션은 다음과 같습니다. pnp (플러그 앤 플레이, 별도의 설정 필요 없음) node_modules 접는 사람), node-modules (클래식 레이아웃)이며, 경우에 따라 pnpm 스타일 링커를 사용합니다. 하드코딩된 도구와의 호환성 문제가 발생하는 경우, node_modules 가정, 전환 node-modules 종종 이러한 문제들을 해결해줍니다.

compressionLevel Yarn에게 캐시된 패키지를 얼마나 적극적으로 압축해야 하는지 알려줍니다. 가치 0 최대 속도를 위해 압축 기능을 완전히 비활성화합니다. 1 디스크 사용량을 최소화하기 위해 완전 압축을 강제합니다. mixed 두 가지 측면 모두의 균형을 맞추는데, 이는 대부분의 팀에게 합리적인 기본 선택인 경향이 있습니다.

사용 enableGlobalCache Yarn이 여러 프로젝트에서 공유 캐시 디렉터리를 재사용하도록 합니다. 이렇게 하면 여러 저장소가 동일한 라이브러리에 의존하는 경우 Yarn은 해당 라이브러리를 여러 번 다운로드하지 않아 네트워크 대역폭과 디스크 공간을 모두 절약할 수 있습니다.

마지막으로, enableTelemetry Yarn이 익명 사용 정보를 관리자에게 전송할지 여부를 제어합니다. 많은 기업은 개인 정보 보호 및 규정 준수 문제로 이 기능을 끄는 것을 선호하는 반면, 프로젝트 로드맵을 수립하는 데 도움이 되도록 켜두는 기업도 있습니다. 어느 쪽이든 이 설정 파일에 플래그를 지정하면 됩니다.

Git 통합: 무엇을 커밋하고 무엇을 무시해야 할까요?

Yarn은 일부 기계를 내부에 보관하기 때문입니다. .yarn 디렉토리의 경우, 버전 관리 시스템에 무엇을 포함시킬지 신중하게 결정하는 것이 중요합니다. 일부 파일은 반드시 추적해야 하지만, 나머지는 저장소 용량만 늘리는 캐시 또는 빌드 아티팩트입니다.

최소 .gitignore 베리 프로젝트에서 많이 사용되는 전략은 다음과 같습니다.

.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*

이 패턴은 전체를 무시합니다. .yarn 폴더를 생성한 다음 커밋해야 하는 하위 디렉터리를 화이트리스트에 추가합니다. The releases 예를 들어, 해당 디렉터리에는 프로젝트별 Yarn 바이너리가 포함되어 있습니다. 이 디렉터리가 없으면 다른 개발자가 저장소를 복제할 때 정확히 동일한 CLI 버전을 얻지 못할 수 있습니다.

다음과 같은 허용된 경로 .yarn/plugins or .yarn/sdks 사용자 지정 플러그인 및 편집기 통합 기능을 지원합니다. 버전 관리를 통해 플러그인을 관리하면 팀 구성원 모두가 동일한 플러그인 세트와 언어 도구 지원을 공유할 수 있습니다.

The .pnp.* 항목은 플러그 앤 플레이 모드를 사용하는 경우 종속성 트리를 설명하는 플러그 앤 플레이 매니페스트 파일입니다. 이를 커밋하는 것은 재현 가능하고 경우에 따라서는 설치가 필요 없는 워크플로우에 필수적입니다. 이를 통해 CI 또는 새 클론은 매니페스트를 다시 생성할 필요 없이 프로젝트를 즉시 실행할 수 있습니다.

게다가 다음 사항도 기억해 두세요. yarn.lock 해당 저장소에서 핵심적인 역할을 하는 요소입니다. Yarn의 결정론적 이점이 사라지지 않도록, 의존성 변경과 함께 항상 커밋하고 업데이트해야 합니다.

Yarn vs npm: Yarn이 진정으로 빛을 발할 때

Yarn과 npm은 Node.js 종속성 관리라는 핵심 문제를 해결하지만, Yarn은 몇 가지 실제 시나리오에서 차별화된 모습을 보입니다. 가장 눈에 띄는 차이점은 성능입니다. Yarn은 병렬 설치와 더욱 스마트한 캐싱을 통해 대규모 프로젝트에서 설치를 훨씬 빠르게 완료하는 경우가 많습니다.

디스크 사용량 또한 강력한 장점이며, 특히 PnP를 활용할 경우 더욱 그렇습니다. 제거하여 node_modules일반적인 프로젝트에서 디스크 공간을 훨씬 적게 사용할 수 있으며, PnP와 잘 통합되는 도구는 Node가 더 이상 깊고 반복적인 디렉토리 트리를 탐색할 필요가 없으므로 모듈 해결 속도가 빨라지는 이점을 누릴 수 있습니다.

락파일 동작 측면에서 Yarn은 yarn.lock 간결하고 결정론적인 특성으로 널리 인정받고 있습니다. 이 기능은 해결 결정 사항을 명시적으로 기록하므로 특정 버전이 선택된 이유를 더 쉽게 이해하고 버전 충돌을 디버깅할 수 있습니다.

Yarn은 워크스페이스 기능 덕분에 모노레포 분야에서 오랫동안 앞서 나가왔습니다. 워크스페이스를 사용하면 단일 저장소의 여러 패키지가 잠금 파일을 공유하고, 종속성이 효율적으로 호이스팅되며, 로컬 패키지가 구성 코드 없이 자동으로 링크됩니다.

Yarn이 특히 뛰어난 성능을 발휘하는 실제 사용 사례에는 복잡한 CI/CD 설정, 대규모 공유 코드베이스 또는 기업 프록시 및 사용자 지정 인증서로 보호되는 환경 등이 있습니다. 예를 들어, 실행 중 yarn install --immutable CI 내부에서는 다음과 같은 경우 설치가 실패하도록 보장합니다. yarn.lock 파일이 일치하지 않습니다 package.json이는 프로덕션 환경에 도달하기 전에 일관성이 없는 종속성 상태를 포착합니다.

반면, npm은 npm 생태계에 깊이 관여하는 소규모 프로젝트나 팀에게는 여전히 완벽하게 적합한 선택입니다. 만약 관리해야 할 서비스가 몇 개 되지 않고 의존성 트리가 크지 않으며 모노레포나 PnP에 크게 의존하지 않는다면, npm을 고수하는 단순함이 Yarn의 고급 기능보다 더 큰 장점이 될 수 있습니다.

운영 체제별 설치 옵션

npm 기반의 전역 CLI 설치는 거의 모든 곳에서 작동하지만, Yarn은 운영체제별 배포판과 스크립트도 제공합니다. 이러한 방법은 네이티브 패키지 관리자를 선호하거나 npm 설정이 편리하지 않은 시스템에서 작업하는 경우에 유용합니다.

macOS에서는 Homebrew를 통해 Yarn을 설치하는 것이 매우 인기 있는 방법입니다. Node.js가 이미 설치되어 있다고 가정할 때(Homebrew를 통해서도 설치 가능), 일반적인 설치 과정은 다음과 같습니다.

brew install yarn

nvm이나 다른 Node 버전 관리자를 사용하는 경우, PATH 환경 변수에 shims 디렉터리가 Homebrew Node보다 먼저 있는지 확인하십시오. 그렇지 않으면 Yarn 스크립트를 실행할 때 예상과 다른 Node 버전이 사용될 수 있습니다.

macOS에서 사용할 수 있는 또 다른 옵션은 MacPorts입니다. MacPorts를 사용하면 Node.js와 Yarn이 설치되어 있지 않은 경우 설치할 수 있습니다. 더욱 세밀한 제어를 위해 Yarn은 macOS 및 일반 Unix에서 작동하는 설치 셸 스크립트도 제공합니다. 이 스크립트를 셸에 연결하면 Yarn을 한 번에 다운로드하고 설정할 수 있습니다.

Windows에서는 MSI 설치 프로그램, Chocolatey 또는 Scoop을 사용하는 것이 좋습니다. MSI 설치 프로그램은 그래픽 마법사를 통해 설치를 안내하며, 일반적으로 Node.js가 설치 과정에 포함되도록 합니다. 반면 Scoop는 명령줄에서 Yarn을 설치할 수 있도록 하며, Node.js가 설치되어 있지 않은 경우 설치를 제안합니다.

Windows에 Yarn을 설치할 때는 프로젝트 폴더와 Yarn 캐시 디렉토리(일반적으로 아래 경로에 있음)를 모두 화이트리스트에 추가하는 것이 좋습니다. %LocalAppData%\Yarn바이러스 백신 프로그램에서 확인하세요. 그렇지 않으면 모든 파일 다운로드 및 쓰기 작업이 스캔되어 설치 속도가 현저히 느려질 수 있습니다.

리눅스 배포판은 종종 공식 시스템 패키지, Yarn 자체 저장소 또는 수동 tarball 설치와 같은 여러 옵션을 제공합니다. 예를 들어 데비안이나 우분투에서는 Yarn의 APT 저장소를 추가하고, 선택적으로 NodeSource를 구성하여 최신 Node.js를 가져온 다음 Yarn을 설치할 수 있습니다. apt.

CentOS, Fedora, RHEL, Arch와 같은 배포판에서는 Yarn이 GPG로 서명된 tarball을 제공하며, 이를 다운로드하여 디스크의 어느 위치에든 압축을 풀 수 있습니다. 수동 설정 시에는 일반적으로 GPG를 사용하여 tarball의 서명을 확인한 다음 압축 해제된 Yarn 디렉토리를 PATH에 추가해야 합니다. yarn 해당 명령어는 시스템 전체에서 사용 가능합니다.

유닉스, 리눅스 및 윈도우에서의 PATH 구성

설치 과정에서 흔히 발생하는 혼란의 원인은 PATH 구성입니다. Yarn은 설치되었지만 셸에서 실행 파일을 찾을 수 없는 경우가 있습니다. 이 경우 Yarn 디렉터리가 PATH 환경 변수에 포함되도록 환경을 업데이트해야 합니다.

유닉스 계열 시스템에서 수동으로 tarball을 설치할 때 일반적인 패턴은 Yarn의 경로를 가리키는 파일을 내보내는 것입니다. bin 디렉토리. 예 :

export PATH="$PATH:/opt/yarn-[version]/bin"

이 줄을 셸 프로필 파일(예: )에 추가합니다. .bashrc, .bash_profile, .zshrc(또는 유사한 명령어를 사용하여) 새 터미널 세션을 열거나 파일을 소싱하여 변경 사항을 적용하십시오. 완료되면 yarn --version 어떤 디렉토리에서든 작동해야 합니다.

만약 당신이 기대면 yarn global Yarn 명령어를 실행하려면 Yarn의 전역 bin 폴더가 PATH에 포함되어 있는지 확인해야 합니다. 이를 위한 빠른 방법은 프로필에 다음을 추가하는 것입니다.

export PATH="$PATH:`yarn global bin`"

생선 껍질 사용자들은 대신 다음을 이용합니다. fish_user_paths 실행 가능합니다:

set -U fish_user_paths (yarn global bin) $fish_user_paths

Windows에서는 Yarn 바이너리 디렉터리를 PATH 환경 변수에 수동으로 추가해야 할 수도 있습니다. 간단한 예는 다음과 같습니다.

set PATH=%PATH%;C:\.yarn\bin

실제로 그래픽 설치 프로그램이나 Windows 패키지 관리자가 PATH 구성을 자동으로 처리해주는 경우가 많지만, 예상대로 작동하지 않을 때 수동으로 조정하는 방법을 알아두는 것도 유용합니다.

일반적인 설치 문제 및 해결 방법

명확한 문서가 있음에도 불구하고, 팀에서 Yarn을 도입할 때 특정 설치 문제가 반복적으로 발생합니다. 다행히도, 이러한 문제들 대부분은 잘 알려져 있고 반복 가능한 해결책을 가지고 있습니다.

반복적으로 발생하는 문제 중 하나는 npm을 통해 글로벌 CLI를 설치할 때 권한 관련 오류가 발생하는 것입니다. npm 접두사가 시스템 소유 디렉터리를 가리키는 경우 다음과 같은 명령을 사용할 수 있습니다.

sudo npm install -g yarn

효과는 있을 수 있지만 장기적으로는 이상적이지 않습니다. 더 나은 방법은 npm이 사용자 소유의 전역 디렉터리를 사용하도록 구성하는 것입니다. 현재 접두사는 다음 명령으로 확인할 수 있습니다.

npm config get prefix

만약 그것이 아래에 있는 무언가를 가리킨다면 /usr자신만의 디렉토리를 만들고 npm을 재구성하세요. 예를 들어 :

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH

셸 설정을 다시 로드한 후에는 Yarn을 전역적으로 설치할 수 있을 것입니다. sudo이를 통해 권한 관련 골칫거리를 많이 피할 수 있습니다.

또 다른 흔한 혼란의 원인은 글로벌 Yarn과 프로젝트 Yarn 간의 버전 불일치입니다. 이는 의도적인 것임을 기억하십시오. 전역 1.x CLI는 단순히 실행기일 뿐이며, Berry로 구성된 프로젝트 내에서 사용될 경우 해당 릴리스에 있는 작업을 위임합니다. .yarn/releases.

Yarn에서 설치가 성공적으로 완료되었다고 보고했음에도 불구하고 패키지가 누락된 것처럼 보인다면, 해당 도구가 PnP를 아직 제대로 이해하지 못하고 있을 가능성이 있습니다. 일부 편집기, 린터 또는 빌드 도구는 다음을 가정합니다. node_modules 디렉토리를 지정해야 하며, 해당 디렉토리가 존재하지 않으면 오류가 발생합니다. 일반적인 해결 방법으로는 편집기용 Yarn SDK를 활성화하거나, Yarn 지원 매트릭스에서 호환되는 도구를 사용하거나, 링커를 일시적으로 변경하는 것이 있습니다. node-modules 를 통해 .yarnrc.yml.

여러 브랜치에서 종속성을 병렬적으로 추가하거나 변경하는 활발한 팀 환경에서는 록파일 충돌이 불가피합니다. 인셀덤 공식 판매점인 yarn.lock 병합 중 충돌이 발생할 경우, 효과적인 전략은 하나의 브랜치를 기준선으로 선택하고, 가능한 경우 해당 기준선을 우선시하여 텍스트 충돌을 수동으로 해결한 다음 다시 실행하는 것입니다. yarn install 새로운 진실의 원천으로 다시 커밋할 깨끗한 잠금 파일을 재생성합니다.

캐시 관련 문제는 대개 간단한 방법으로 해결됩니다. yarn cache clean 이어서 새로운 yarn install. Yarn이 이상하게 작동하거나, 패키지가 오래된 것처럼 보이거나, 이상한 해상도 오류가 발생하는 경우, 캐시를 정리하고 다시 설치하면 추가 조사 없이 시스템이 정상 상태로 돌아오는 경우가 많습니다.

설치 후 점검 및 지속적인 성능 조정

Yarn이 설치되고 명령이 성공적으로 실행되면, 모든 것이 프로젝트에 맞게 올바르게 연결되었는지 확인하기 위해 몇 가지 간단한 상태 점검을 실행해 보는 것이 좋습니다. 가장 먼저, 그리고 가장 간단한 방법은 버전을 확인하는 것입니다.

yarn --version

그 후, 이미 프로젝트가 있는 경우, package.json, 실행 중 yarn install 오류가 없다는 것은 환경, 레지스트리 접근 권한 및 Node 버전이 호환된다는 강력한 지표입니다. 필요한 라이브러리가 많을 경우 설치 시간을 주의 깊게 살펴보는 것이 좋습니다. 이후 실행 시에는 Yarn의 캐싱 및 동시 실행 기능 덕분에 설치 시간이 상당히 단축될 것입니다.

Yarn은 다음과 같은 명령어도 제공합니다. yarn outdated 어떤 패키지에 최신 버전이 있는지 확인하기 위해, yarn list --depth=0 실제로 설치된 모든 최상위 종속성을 출력합니다. 이러한 도구는 종속성 변화를 추적하고 업그레이드 일정을 결정하는 데 도움이 됩니다.

성능 측면에서 보면, 설치 후 조절할 수 있는 요소가 여러 가지 있습니다. 설정과 같은 networkConcurrency사용자 지정 캐시 폴더를 사용하거나 CI에서 자세한 진행률 표시줄을 비활성화하면 대규모 설치 시간을 몇 초 또는 몇 분까지 단축할 수 있습니다. 예를 들어 다음과 같이 동시성을 높일 수 있습니다.

yarn config set network-concurrency 8

Yarn이 더 많은 네트워크 요청을 병렬로 보낼 수 있도록 하여 빠른 연결에서 다운로드 속도를 향상시키는 경우가 많습니다.

마지막으로, 매우 큰 모노레포 또는 다중 환경 설정의 경우 Yarn을 확장 가능한 인프라(예: 컨테이너 기반 CI 파이프라인 또는 클라우드 빌드 플랫폼)와 결합하면 Yarn의 결정론적이고 캐시 친화적인 설계를 최대한 활용할 수 있습니다. 모든 설치는 다음의 안내에 따라 진행됩니다. yarn.lock 그리고 PnP 또는 node_modules CI 노드 간에 공유되거나 빌드 전반에 걸쳐 재사용되는 메타데이터 및 캐시는 설치 시간을 크게 단축할 수 있습니다.

결론적으로, Yarn을 올바르게 설치하고, 프로젝트별로 고정하고, PATH 및 구성을 조정하고, 캐싱 및 워크스페이스 기능을 활용하는 방법을 이해하는 데 시간을 투자하면 빠르게 효과를 볼 수 있습니다. 결과적으로 설치 속도가 빨라지고, 빌드가 더욱 예측 가능해지며, 모노레포 사용 편의성이 향상되고, 팀원, CI/CD 시스템 및 프로덕션 환경 전반에서 재현하기 쉬운 종속성 관리 워크플로를 구축할 수 있습니다.

관련 게시물: