Configure e use o npm com 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á.

Configure e use o npm com CodeArtifact

Depois de criar um repositório no CodeArtifact, você pode usar o cliente npm para instalar e publicar pacotes. O método recomendado para configurar o npm com o endpoint e o token de autorização do repositório é usando o comando aws codeartifact login. Também é possível configurar o npm manualmente.

Configuração do npm com o comando login

Use o comando aws codeartifact login para buscar credenciais para uso com o npm.

nota

Se você estiver acessando um repositório em um domínio de sua propriedade, não será necessário incluir --domain-owner. Para ter mais informações, consulte Domínios entre contas.

Importante

Se você estiver usando o npm 10.x ou mais recente, deverá usar a AWS CLI versão 2.9.5 ou mais recente para executar o comando com êxito. aws codeartifact login

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

Esse comando faz as seguintes alterações em seu arquivo ~/.npmrc:

  • Adiciona um token de autorização depois de buscá-lo CodeArtifact usando suas AWS credenciais.

  • 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 chamar o login é de 12 horas e o login deve ser chamado para atualizar o token periodicamente. Para obter mais informações sobre o token de autorização criado com o comando login, consulte Tokens criados com o comando login.

Configuração do npm sem usar o comando login

Você pode configurar o npm com seu CodeArtifact repositório sem o aws codeartifact login comando atualizando manualmente a configuração do npm.

Para configurar o npm sem usar o comando login
  1. Em uma linha de comando, obtenha um token de CodeArtifact autorização e armazene-o em uma variável de ambiente. O npm usará esse token para se autenticar no seu repositório. CodeArtifact

    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.

    CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
  2. Obtenha o endpoint do seu CodeArtifact repositório executando o comando a seguir. O endpoint do repositório é usado para direcionar o npm ao seu repositório para instalar ou publicar pacotes.

    • Substitua my_domain pelo nome do seu CodeArtifact domínio.

    • Substitua 111122223333 pela ID da AWS conta 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 ter mais informações, consulte Domínios entre contas.

    • Substitua my_repo pelo nome do seu CodeArtifact repositório.

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

    O URL a seguir é um exemplo de endpoint de repositório.

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

    O URL de registro deve terminar com uma barra inclinada (/). Do contrário, você não poderá se conectar ao repositório.

  3. Use o npm config set comando para definir o registro no seu CodeArtifact repositório. Substitua o URL pelo URL do endpoint do repositório da etapa anterior.

    npm config set registry=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/
  4. Use o comando npm config set para adicionar seu token de autorização à configuração do npm.

    npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:_authToken=$CODEARTIFACT_AUTH_TOKEN

    Para npm 6 ou inferior: para fazer com que o npm sempre passe o token de autenticação para CodeArtifact, mesmo para GET solicitações, definir a variável de always-auth configuração com. npm config set

    npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:always-auth=true

Exemplo de arquivo de configuração do npm (.npmrc)

Veja a seguir um exemplo de .npmrc arquivo após seguir as instruções anteriores para definir o endpoint CodeArtifact do registro, adicionar um token de autenticação e configurar. always-auth

registry=https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my-cli-repo/ //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken=eyJ2ZX... //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:always-auth=true

Execução de comandos npm

Depois de configurar o cliente npm, você pode executar comandos npm. Supondo que um pacote esteja presente em seu repositório ou em um de seus repositórios upstream, você pode instalá-lo com npm install. Por exemplo, use o seguinte para instalar o pacote lodash.

npm install lodash

Use o comando a seguir para publicar um novo pacote npm em um CodeArtifact repositório.

npm publish

Para ver informações sobre como criar pacotes npm, consulte Criação de módulos Node.js no site de documentação do npm. Para obter uma lista dos comandos npm compatíveis com CodeArtifact, consulte npm Command Support.

Verificar autorização e autenticação de npm

Invocar o comando npm ping é uma forma de verificar o seguinte:

  • Você configurou corretamente suas credenciais para poder se autenticar em um CodeArtifact repositório.

  • A configuração de autorização concede a você a permissão ReadFromRepository.

O resultado de uma invocação bem-sucedida de npm ping se parece com o seguinte.

$ npm -d ping npm info it worked if it ends with ok npm info using npm@6.4.1 npm info using node@v9.5.0 npm info attempt registry request try #1 at 4:30:59 PM npm http request GET https://<domain>.d.codeartifact.us-west-2.amazonaws.com/npm/shared/-/ping?write=true npm http 200 https:///npm/shared/-/ping?write=true Ping success: {} npm timing npm Completed in 716ms npm info ok

A opção -d faz com que o npm imprima informações adicionais de depuração, incluindo o URL do repositório. Essas informações facilitam a confirmação de que o npm está configurado para usar o repositório esperado.

Mudança de volta para o registro npm padrão

Configurar o npm com CodeArtifact define o registro npm para o repositório especificado. CodeArtifact Você pode executar o comando a seguir para definir o registro npm de volta ao registro padrão quando terminar de se conectar a. CodeArtifact

npm config set registry https://registry.npmjs.com/

Solução de problemas de instalações lentas com npm 8.x ou posterior

Há um problema conhecido nas versões 8.x e posteriores do npm em que, se uma solicitação for feita para um repositório de pacotes e o repositório redirecionar o cliente para o Amazon S3 em vez de transmitir os ativos diretamente, o cliente npm poderá travar por vários minutos por dependência.

Como CodeArtifact os repositórios são projetados para sempre redirecionar a solicitação para o Amazon S3, às vezes esse problema ocorre, o que causa longos tempos de compilação devido aos longos tempos de instalação do npm. Casos desse comportamento serão apresentados como uma barra de progresso exibida por vários minutos.

Para evitar esse problema, use os sinalizadores --no-progress ou progress=false com os comandos npm da CLI, conforme mostrado no exemplo a seguir.

npm install lodash --no-progress