gestion des balises npm - CodeArtifact

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

gestion des balises npm

prise en charge des registres npmbalises, qui sont des alias de chaînes pour les versions de paquets. Vous pouvez utiliser des balises pour fournir un alias plutôt que des numéros de version. Par exemple, vous pouvez avoir un projet avec plusieurs flux de développement et utiliser une balise différente (par exemple,stable,beta,dev,canary) pour chaque flux. Pour de plus amples informations, veuillez consulterdist-tagsur le site web npm.

Par défaut, npm utilise lelatestpour identifier la version actuelle d'un package.npm install pkg(sans@versionou@tagspécifier) installe la dernière balise. En règle générale, les projets utilisent la dernière balise pour les versions stables uniquement. D'autres balises sont utilisées pour les versions instables ou préliminaires.

Modifier les balises avec le client npm

Les troisnpm dist-tagcommandes (add,rm, etls) fonctionnent de manière identique dans les référentiels CodeArtifact comme dans leRegistre npm par défaut.

les balises npm et l'API CopyPackageVersions

Lorsque vous utilisez leCopyPackageVersionsAPI pour copier une version de package npm, toutes les balises aliasant cette version sont copiées dans le référentiel de destination. Lorsqu'une version en cours de copie comporte une balise également présente dans la destination, l'opération de copie définit la valeur de balise dans le référentiel de destination pour qu'elle corresponde à la valeur du référentiel source.

Par exemple, supposons que le référentiel S et le référentiel D contiennent une version unique de laweb-helperavec le dernier ensemble de balises comme indiqué dans ce tableau.

Référentiel. Nom du package Étiquettes de package

S

web-helper

dernier(alias pour la version 1.0.1)

D

web-helper

dernier(alias pour la version 1.0.0)

CopyPackageVersionsest invoqué pour copierweb-helper1.0.1 de S à D. Une fois l'opération terminée, lelatestétiquette surweb-helperdans les alias 1.0.1 du référentiel D, et non 1.0.0.

Si vous devez modifier les balises après la copie, utilisez lenpm dist-tagpour modifier les balises directement dans le référentiel de destination. Pour plus d'informations sur leCopyPackageVersionsAPI, consultezCopie de packages entre des référentiels.

balises npm et référentiels en amont

Lorsque npm demande les balises d'un package et que des versions de ce package sont également présentes dans un référentiel en amont, CodeArtifact fusionne les balises avant de les renvoyer au client. Par exemple, un référentiel nommé R possède un référentiel en amont nommé U. Le tableau suivant présente les balises d'un package nomméweb-helperprésent dans les deux référentiels.

Référentiel. Nom du package Étiquettes de package

R

web-helper

dernier(alias pour la version 1.0.0)

U

web-helper

alpha(alias pour la version 1.0.1)

Dans ce cas, lorsque le client npm récupère les balises de laweb-helperà partir du référentiel R, il reçoit à la fois ledernieretalphaétiquettes. Les versions vers lesquelles les balises pointent ne changeront pas.

Lorsque la même balise est présente sur le même package dans le référentiel en amont et en aval, CodeArtifact utilise la balise qui est présente dans leen amontrepository. Par exemple, supposons que les balises surwebhelperont été modifiés pour avoir l'aspect suivant.

Référentiel. Nom du package Étiquettes de package

R

web-helper

dernier(alias pour la version 1.0.0)

U

web-helper

dernier(alias pour la version 1.0.1)

Dans ce cas, lorsque le client npm récupère les balises du packageassistant webà partir du référentiel R, ledernierbalise alias la version1.0.1car c'est ce qui se trouve dans le référentiel en amont. Cela facilite la consommation de nouvelles versions de package dans un référentiel en amont qui ne sont pas encore présents dans un référentiel en aval en exécutantnpm update.

L'utilisation de la balise dans le référentiel en amont peut être problématique lors de la publication de nouvelles versions d'un package dans un référentiel en aval. Par exemple, supposons que la dernière balise sur le paquetassistant webest le même en R et en U.

Référentiel. Nom du package Étiquettes de package

R

web-helper

dernier(alias pour la version 1.0.1)

U

web-helper

dernier(alias pour la version 1.0.1)

Lorsque la version 1.0.2 est publiée sur R, npm met à jour ledernierbalise 1.0.2.

Référentiel. Nom du package Étiquettes de package

R

web-helper

dernier(alias pour la version 1.0.2)

U

web-helper

dernier(alias pour la version 1.0.1)

Toutefois, le client npm ne voit jamais cette valeur de balise car la valeur dedernieren U est 1.0.1. En cours d'exécutionnpm installsur le référentiel R immédiatement après la publication de 1.0.2 installe 1.0.1 au lieu de la version qui vient d'être publiée. Pour installer la dernière version publiée, vous devez spécifier la version exacte du package, comme suit.

npm install web-helper@1.0.2