

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurar e usar o Yarn com o CodeArtifact
<a name="npm-yarn"></a>

Depois de criar um repositório, você pode usar o cliente Yarn para gerenciar pacotes npm.

**nota**  
O `Yarn 1.X` lê e usa informações do seu arquivo de configuração npm (.npmrc), o que não acontece com o `Yarn 2.X`. A configuração do `Yarn 2.X` deve ser definida no arquivo .yarnrc.yml.

**Contents**
+ [Configure o Yarn 1.X com o comando `aws codeartifact login`](#npm-yarn-configure-login)
+ [Configure o Yarn 2.X com o comando `yarn config set`](#npm-yarn-configure-yarn-command)

## Configure o Yarn 1.X com o comando `aws codeartifact login`
<a name="npm-yarn-configure-login"></a>

Para o `Yarn 1.X`, você pode configurar o Yarn com o CodeArtifact usando o comando `aws codeartifact login`. O comando `login` configurará o arquivo \~/.npmrc com as informações e credenciais do endpoint do repositório do CodeArtifact. Com o `Yarn 1.X`, os comandos `yarn` usam as informações de configuração do arquivo \~/.npmrc.

**Para configurar o `Yarn 1.X` com o comando login**

1. Caso ainda não tenha feito isso, configure suas credenciais AWS para uso com o AWS CLI, conforme descrito em [Conceitos básicos do CodeArtifact](getting-started.md).

1. Para executar o comando `aws codeartifact login`, o npm deve estar instalado. Consulte [Baixar e instalar o Node.js e o npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm/) na *documentação do npm* para obter instruções de instalação.

1. Use o comando `aws codeartifact login` para buscar as credenciais do CodeArtifact e configurar o arquivo \~/.npmrc.
   + Substitua {{my\_domain}} pelo seu nome de domínio do CodeArtifact.
   + Substitua {{111122223333}} pelo ID da conta da AWS do proprietário do domínio. Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir `--domain-owner`. Para obter mais informações, consulte [Domínios entre contas](domain-overview.md#domain-overview-cross-account).
   + Substitua {{my\_repo}} pelo nome do seu repositório do CodeArtifact.

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

   O comando `login` faz as seguintes alterações no arquivo \~/.npmrc:
   + Adiciona um token de autorização depois de buscá-lo no CodeArtifact usando suas credenciais da AWS.
   + Define o registro npm para o repositório especificado pela opção `--repository`.
   + **Para npm 6 e inferior:** adiciona `"always-auth=true"` para que o token de autorização seja enviado para cada comando npm.

   O período de autorização padrão após a chamada do `login` é de 12 horas e `login` deve ser chamado para atualizar periodicamente o token. Para obter mais informações sobre o token de autorização criado com o comando `login`, consulte [Tokens criados com o comando `login`](tokens-authentication.md#auth-token-login).

1. **Para o npm 7.X e 8.X**, você deve adicionar `always-auth=true` ao arquivo \~/.npmrc para usar o Yarn.

   1. Abra o arquivo \~/.npmrc em um editor de texto e adicione `always-auth=true` em uma nova linha.

Você pode usar o comando `yarn config list` para verificar se o Yarn está usando a configuração correta. Depois de executar o comando, verifique os valores na seção `info npm config`. O conteúdo deve ser semelhante ao trecho a seguir.

```
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
}
```

## Configure o Yarn 2.X com o comando `yarn config set`
<a name="npm-yarn-configure-yarn-command"></a>

O procedimento a seguir detalha como configurar o `Yarn 2.X` atualizando a configuração do `.yarnrc.yml` na linha de comando com o comando `yarn config set`.

**Para atualizar a configuração do `yarnrc.yml` a partir da linha de comando**

1. Caso ainda não tenha feito isso, configure suas credenciais AWS para uso com o AWS CLI, conforme descrito em [Conceitos básicos do CodeArtifact](getting-started.md).

1. Execute o comando `aws codeartifact get-repository-endpoint` para obter o endpoint do seu repositório do CodeArtifact.
   + Substitua {{my\_domain}} pelo seu nome de domínio do CodeArtifact.
   + Substitua {{111122223333}} pelo ID da conta da AWS do proprietário do domínio. Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir `--domain-owner`. Para obter mais informações, consulte [Domínios entre contas](domain-overview.md#domain-overview-cross-account).
   + Substitua {{my\_repo}} pelo nome do seu repositório do CodeArtifact.

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

1. Atualize o valor `npmRegistryServer` no arquivo .yarnrc.yml com o endpoint do repositório.

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

1. Obtenha um token de autorização do CodeArtifact e armazene-o em uma variável de ambiente.
**nota**  
O comando a seguir é para máquinas macOS ou Linux. Para ver informações sobre como configurar variáveis de ambiente em uma máquina Windows, consulte [Passar um token de autenticação usando uma variável de ambiente](tokens-authentication.md#env-var).
   + Substitua {{my\_domain}} pelo seu nome de domínio do CodeArtifact.
   + Substitua {{111122223333}} pelo ID da conta da AWS do proprietário do domínio. Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir `--domain-owner`. Para obter mais informações, consulte [Domínios entre contas](domain-overview.md#domain-overview-cross-account).
   + Substitua {{my\_repo}} pelo nome do seu repositório do CodeArtifact.

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

1. Use o comando `yarn config set` para adicionar seu token de autenticação do CodeArtifact ao arquivo .yarnrc.yml. Substitua o URL no comando a seguir pelo URL do endpoint do repositório da Etapa 2.

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

1. Use o comando `yarn config set` para definir o valor de `npmAlwaysAuth` como `true`. Substitua o URL no comando a seguir pelo URL do endpoint do repositório da Etapa 2.

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

Depois da configuração, o arquivo .yarnrc.yml deve ter um conteúdo semelhante ao seguinte trecho.

```
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/"
```

Você também pode usar o comando `yarn config` para verificar os valores de `npmRegistries` e `npmRegistryServer`.