Configurar e usar o Yarn com o CodeArtifact - CodeArtifact

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

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.

Configure o Yarn 1.X com o comando aws codeartifact login

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.

  2. Para executar o comando aws codeartifact login, o npm deve estar instalado. Consulte Baixar e instalar o Node.js e o npm na documentação do npm para obter instruções de instalação.

  3. 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.

    • 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.

  4. 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

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.

  2. 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.

    • 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
  3. 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/"
  4. 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.

    • 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.

    • 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`
  5. 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}"
  6. 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.