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.
Sumário
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
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.
Para executar o comando
aws codeartifact login, o npm deve estar instalado. Consulte Baixar e instalar o Node.js e o npmna documentação do npm para obter instruções de instalação. Use o comando
aws codeartifact loginpara buscar as credenciais do CodeArtifact e configurar o arquivo ~/.npmrc.Substitua
my_domainpelo seu nome de domínio do CodeArtifact.Substitua
111122223333pelo 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_repopelo nome do seu repositório do CodeArtifact.
aws codeartifact login --tool npm --domainmy_domain--domain-owner111122223333--repositorymy_repoO comando
loginfaz 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 elogindeve ser chamado para atualizar periodicamente o token. Para obter mais informações sobre o token de autorização criado com o comandologin, consulte Tokens criados com o comando login.-
Para o npm 7.X e 8.X, você deve adicionar
always-auth=trueao arquivo ~/.npmrc para usar o Yarn.Abra o arquivo ~/.npmrc em um editor de texto e adicione
always-auth=trueem 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
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.
Execute o comando
aws codeartifact get-repository-endpointpara obter o endpoint do seu repositório do CodeArtifact.Substitua
my_domainpelo seu nome de domínio do CodeArtifact.Substitua
111122223333pelo 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_repopelo nome do seu repositório do CodeArtifact.
aws codeartifact get-repository-endpoint --domainmy_domain--domain-owner111122223333--repositorymy_repo--format npmAtualize o valor
npmRegistryServerno 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/"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_domainpelo seu nome de domínio do CodeArtifact.Substitua
111122223333pelo 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_repopelo nome do seu repositório do CodeArtifact.
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--query authorizationToken --output text`-
Use o comando
yarn config setpara 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}" -
Use o comando
yarn config setpara definir o valor denpmAlwaysAuthcomotrue. 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.