

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# CodeArtifact로 Yarn 구성 및 사용
<a name="npm-yarn"></a>

리포지토리를 만든 후 Yarn 클라이언트를 사용하여 npm 패키지를 관리할 수 있습니다.

**참고**  
`Yarn 1.X`는 npm 구성 파일(.npmrc)에서 정보를 읽고 사용하지만 `Yarn 2.X`는 그렇지 않습니다. `Yarn 2.X`에 대한 구성은 .yarnrc.yml 파일에 정의해야 합니다.

**Contents**
+ [`aws codeartifact login` 명령을 사용하여 Yarn 1.X를 구성합니다.](#npm-yarn-configure-login)
+ [`yarn config set` 명령을 사용하여 Yarn 2.X를 구성합니다.](#npm-yarn-configure-yarn-command)

## `aws codeartifact login` 명령을 사용하여 Yarn 1.X를 구성합니다.
<a name="npm-yarn-configure-login"></a>

`Yarn 1.X`의 경우, `aws codeartifact login` 명령을 실행하여 CodeArtifact로 Yarn을 구성할 수 있습니다. 이 `login` 명령을 실행하면 CodeArtifact 리포지토리 엔드포인트 정보 및 보안 인증으로 \$1/.npmrc 파일이 구성됩니다. `Yarn 1.X`를 사용하면 `yarn` 명령은 \$1/.npmrc 파일의 구성 정보를 사용합니다.

**login 명령으로 `Yarn 1.X`를 구성하려면**

1. AWS 보안 인증을 아직 구성하지 않았다면 [CodeArtifact 시작하기](getting-started.md)에 설명된 대로 AWS CLI에서 사용할 이 보안 인증을 구성합니다.

1. `aws codeartifact login` 명령을 성공적으로 실행하려면 npm을 설치해야 합니다. 설치 지침에 관한 내용은 **npm 설명서의 [Node.js 및 npm 다운로드 및 설치](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm/)를 참조합니다.

1. `aws codeartifact login` 명령을 실행하여 CodeArtifact 보안 인증을 가져오고 \$1/.npmrc 파일을 구성합니다.
   + *my\$1domain*을 CodeArtifact 도메인 이름으로 변경합니다.
   + *111122223333*을 도메인 소유자의 AWS 계정 ID로 변경합니다. 소유한 도메인의 리포지토리에 액세스하는 경우 `--domain-owner`를 포함하지 않아도 됩니다. 자세한 내용은 [크로스 계정 도메인](domain-overview.md#domain-overview-cross-account) 섹션을 참조하세요.
   + *my\$1repo*를 CodeArtifact 리포지토리 이름으로 변경합니다.

   ```
   aws codeartifact login --tool npm --domain my_domain --domain-owner 111122223333 --repository my_repo
   ```

   이 `login` 명령은 \$1/.npmrc 파일을 다음과 같이 변경합니다.
   + AWS 보안 인증을 사용하여 CodeArtifact에서 가져온 인증 토큰을 추가합니다.
   + npm 레지스트리를 `--repository` 옵션으로 지정된 리포지토리로 설정합니다.
   + **npm 6 이하의 경우:** 모든 npm 명령에 대해 인증 토큰이 전송되도록 `"always-auth=true"`를 추가합니다.

   `login` 직접 호출 후 기본 인증 기간은 12시간이며 토큰을 주기적으로 새로 고치려면 `login`을 직접적으로 호출해야 합니다. `login` 명령으로 만든 인증 토큰에 관한 자세한 내용은 [`login` 명령으로 생성된 토큰](tokens-authentication.md#auth-token-login)을 참조하세요.

1. **npm 7.X 및 8.X의 경우** Yarn을 사용하려면 \$1/.npmrc 파일에 `always-auth=true`를 추가해야 합니다.

   1. 텍스트 편집기에서 \$1/.npmrc 파일을 열고 `always-auth=true`를 새 줄에 추가합니다.

`yarn config list` 명령을 실행하면 Yarn이 올바른 구성을 사용하고 있는지 확인할 수 있습니다. 명령을 실행한 후 `info npm config` 섹션의 값을 확인합니다. 내용은 다음 코드 조각과 비슷해야 합니다.

```
info npm config
{
  registry: 'https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/',
  '//my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken': 'eyJ2ZXI...',
  'always-auth': true
}
```

## `yarn config set` 명령을 사용하여 Yarn 2.X를 구성합니다.
<a name="npm-yarn-configure-yarn-command"></a>

다음 절차는 `yarn config set` 명령을 사용해 명령줄에서 `.yarnrc.yml` 구성을 업데이트하여 `Yarn 2.X`를 구성하는 방법을 자세히 설명합니다.

**명령줄에서 `yarnrc.yml` 구성을 업데이트하려면**

1. AWS 보안 인증을 아직 구성하지 않았다면 [CodeArtifact 시작하기](getting-started.md)에 설명된 대로 AWS CLI에서 사용할 이 보안 인증을 구성합니다.

1. `aws codeartifact get-repository-endpoint` 명령을 실행하여 CodeArtifact 리포지토리의 엔드포인트를 가져올 수 있습니다.
   + *my\$1domain*을 CodeArtifact 도메인 이름으로 변경합니다.
   + *111122223333*을 도메인 소유자의 AWS 계정 ID로 변경합니다. 소유한 도메인의 리포지토리에 액세스하는 경우 `--domain-owner`를 포함하지 않아도 됩니다. 자세한 내용은 [크로스 계정 도메인](domain-overview.md#domain-overview-cross-account) 섹션을 참조하세요.
   + *my\$1repo*를 CodeArtifact 리포지토리 이름으로 변경합니다.

   ```
   aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm
   ```

1. .yarnrc.yml 파일의 `npmRegistryServer` 값을 리포지토리 엔드포인트로 업데이트합니다.

   ```
   yarn config set npmRegistryServer "https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"
   ```

1. CodeArtifact 인증 토큰을 가져와 환경 변수에 저장합니다.
**참고**  
다음 명령은 macOS 또는 Linux 시스템에 사용됩니다. Windows 시스템에서 환경 변수를 구성하는 방법에 관한 자세한 내용은 [환경 변수를 사용하여 인증 토큰 전달](tokens-authentication.md#env-var)을 참조합니다.
   + *my\$1domain*을 CodeArtifact 도메인 이름으로 변경합니다.
   + *111122223333*을 도메인 소유자의 AWS 계정 ID로 변경합니다. 소유한 도메인의 리포지토리에 액세스하는 경우 `--domain-owner`를 포함하지 않아도 됩니다. 자세한 내용은 [크로스 계정 도메인](domain-overview.md#domain-overview-cross-account) 섹션을 참조하세요.
   + *my\$1repo*를 CodeArtifact 리포지토리 이름으로 변경합니다.

   ```
   export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
   ```

1. `yarn config set` 명령을 사용하여 CodeArtifact 인증 토큰을 .yarnrc.yml 파일에 추가합니다. 다음 명령의 URL을 2단계의 리포지토리 엔드포인트 URL로 변경합니다.

   ```
   yarn config set 'npmRegistries["https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"].npmAuthToken' "${CODEARTIFACT_AUTH_TOKEN}"
   ```

1. `yarn config set` 명령을 실행하여 `npmAlwaysAuth`의 값을 `true`로 설정합니다. 다음 명령의 URL을 2단계의 리포지토리 엔드포인트 URL로 변경합니다.

   ```
   yarn config set 'npmRegistries["https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"].npmAlwaysAuth' "true"
   ```

구성한 후에는 .yarnrc.yml 구성 파일에 다음 코드 조각과 비슷한 내용이 포함되어야 합니다.

```
npmRegistries:
  "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/":
    npmAlwaysAuth: true
    npmAuthToken: eyJ2ZXI...

npmRegistryServer: "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/"
```

`yarn config` 명령을 실행하여 `npmRegistries` 및 `npmRegistryServer`의 값을 확인할 수도 있습니다.