Tratamento de tags npm - 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á.

Tratamento de tags npm

Os registros npm são compatíveis com tags, que são aliases de string para versões de pacotes. Você pode usar tags para proporcionar um alias em vez de números de versão. Por exemplo, você pode ter um projeto com vários fluxos de desenvolvimento e usar uma tag diferente (por exemplo, stable, beta, dev, canary) para cada fluxo. Para ver mais informações, consulte dist-tag no site do npm.

Por padrão, o npm usa a tag latest para identificar a versão atual de um pacote. npm install pkg (sem especificador de @version ou @tag) instala a tag mais recente. Normalmente, os projetos usam a tag mais recente somente para versões de lançamento estáveis. Outras tags são usadas para versões instáveis ou de pré-lançamento.

Edite tags com o cliente npm

Os três comandos npm dist-tag (add, rm e ls) funcionam de forma idêntica nos repositórios do CodeArtifact, assim como no registro npm padrão.

Tags npm e a API CopyPackageVersions

Quando você usa a API CopyPackageVersions para copiar uma versão do pacote npm, todas as tags que dão alias a essa versão são copiadas para o repositório de destino. Quando uma versão que está sendo copiada tem uma tag que também está presente no destino, a operação de cópia define o valor da tag no repositório de destino para corresponder ao valor no repositório de origem.

Por exemplo, digamos que o repositório S e o repositório D contenham uma única versão do pacote web-helper com o conjunto de tags mais recente, conforme mostrado nesta tabela.

Repositório Nome do pacote Tags do pacote

S

web-helper

latest (alias para a versão 1.0.1)

D

web-helper

latest (alias para a versão 1.0.0)

CopyPackageVersions é invocada para copiar o web-helper 1.0.1 de S para D. Depois que a operação for concluída, a tag latest no repositório web-helper no repositório D tem o alias 1.0.1, não 1.0.0.

Se você precisar alterar as tags após a cópia, use o comando npm dist-tag para modificar as tags diretamente no repositório de destino. Para obter mais informações sobre a API CopyPackageVersions,consulte Copiar pacotes entre repositórios.

Tags npm e repositórios upstream

Quando o npm solicita as tags de um pacote e as versões desse pacote também estão presentes em um repositório upstream, o CodeArtifact mescla as tags antes de devolvê-las ao cliente. Por exemplo, um repositório chamado R tem um repositório upstream chamado U. A tabela a seguir mostra as tags de um pacote chamado web-helper presente nos dois repositórios.

Repositório Nome do pacote Tags do pacote

R

web-helper

latest (alias para a versão 1.0.0)

U

web-helper

alpha (alias para a versão 1.0.1)

Nesse caso, quando o cliente npm busca as tags do pacote web-helper no repositório R, ele recebe as tags latest e alpha. As versões para as quais as tags apontam não mudarão.

Quando a mesma tag está presente no mesmo pacote no repositório upstream e downstream, o CodeArtifact usa a tag que está presente no repositório upstream. Por exemplo, suponha que as tags no webhelper tenham sido modificadas para se parecerem com as seguintes.

Repositório Nome do pacote Tags do pacote

R

web-helper

latest (alias para a versão 1.0.0)

U

web-helper

latest (alias para a versão 1.0.1)

Nesse caso, quando o cliente npm buscar as tags para o pacote web-helper do repositório R, a tag latest terá um alias para a versão 1.0.1, pois é isso que está no repositório upstream. Isso facilita o consumo de novas versões de pacotes em um repositório upstream que ainda não estão presentes em um repositório downstream por meio da execução de npm update.

Usar a tag no repositório upstream pode ser problemático ao publicar novas versões de um pacote em um repositório downstream. Por exemplo, digamos que a tag latest no pacote web-helper seja a mesma em R e U.

Repositório Nome do pacote Tags do pacote

R

web-helper

latest (alias para a versão 1.0.1)

U

web-helper

latest (alias para a versão 1.0.1)

Quando a versão 1.0.2 é publicada no R, o npm atualiza a tag latest para 1.0.2.

Repositório Nome do pacote Tags do pacote

R

web-helper

latest (alias para a versão 1.0.2)

U

web-helper

latest (alias para a versão 1.0.1)

No entanto, o cliente npm nunca vê esse valor de tag porque o valor de latest em U é 1.0.1. A execução de npm install no repositório R imediatamente após a publicação da versão 1.0.2 instala a 1.0.1 em vez da versão que acabou de ser publicada. Para instalar a versão publicada mais recentemente, é necessário especificar a versão exata do pacote, da seguinte forma.

npm install web-helper@1.0.2