

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
<a name="npm-tags"></a>

 Les registres npm prennent en charge les *balises*, qui sont des alias de chaîne pour les versions de packages. Vous pouvez utiliser des balises pour fournir un alias au lieu de numéros de version. Par exemple, vous pouvez avoir un projet comportant plusieurs flux de développement et utiliser une balise différente (par exemple`stable`,`beta`,`dev`,`canary`) pour chaque flux. Pour plus d'informations, consultez [dist-tag sur le site Web](https://docs.npmjs.com/cli/dist-tag) de npm. 

 Par défaut, npm utilise la `latest` balise pour identifier la version actuelle d'un package. `npm install {{pkg}}`(sans `@{{version}}` ou `@{{tag}}` spécificateur) installe la dernière balise. Généralement, les projets utilisent la dernière balise uniquement pour les versions stables. D'autres balises sont utilisées pour les versions instables ou préliminaires. 

## Modifier les balises avec le client npm
<a name="editing-tags-with-the-npm-client"></a>

 Les trois `npm dist-tag` commandes (`add`,`rm`, et`ls`) fonctionnent de la même manière dans CodeArtifact les référentiels que dans le registre [npm par défaut](https://registry.npmjs.com/).

## les balises npm et l'API CopyPackageVersions
<a name="tags-and-cpv"></a>

Lorsque vous utilisez l'`CopyPackageVersions`API 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 copiée possède une balise également présente dans la destination, l'opération de copie définit la valeur de la 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 seule version du `web-helper` package avec le dernier ensemble de balises, comme indiqué dans ce tableau.


****  

| Référentiel. | Nom du package | Étiquettes du package | 
| --- | --- | --- | 
|  S | `web-helper` |  *dernier* (alias pour la version 1.0.1) | 
| D | `web-helper` |  *dernier* (alias pour la version 1.0.0) | 

 `CopyPackageVersions`est invoqué pour copier la version `web-helper` 1.0.1 de S vers D. Une fois l'opération terminée, le `latest` tag activé `web-helper` dans le dépôt D prend un alias 1.0.1, et non 1.0.0.

Si vous devez modifier les balises après la copie, utilisez la `npm dist-tag` commande pour modifier les balises directement dans le référentiel de destination. Pour plus d'informations sur l'`CopyPackageVersions`API, consultez [Copier des packages entre des référentiels.](copy-package.md)

## balises npm et référentiels en amont
<a name="tags-and-upstreams"></a>

Lorsque npm demande les balises d'un package et que les 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 indique les balises d'un package nommé `web-helper` présent dans les deux référentiels.


****  

| Référentiel. | Nom du package | Étiquettes du 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 du `web-helper` package dans le référentiel R, il reçoit à la fois les balises les *plus récentes* et les balises *alpha*. Les versions vers lesquelles pointent les balises 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 présente dans le référentiel *en amont*. Supposons, par exemple, que les balises de *webhelper* aient été modifiées pour ressembler à ce qui suit.


****  

| Référentiel. | Nom du package | Étiquettes du 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 package *web-helper à partir* du référentiel R, la *dernière* balise alias la version *1.0.1* car c'est ce qui se trouve dans le référentiel en amont. Cela permet de consommer facilement de nouvelles versions de package dans un référentiel en amont qui ne sont pas encore présentes dans un référentiel en aval lors de l'exécution`npm update`.

L'utilisation de la balise dans le référentiel en amont peut s'avérer 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 du package *web-helper soit* la même en R et en U.


****  

| Référentiel. | Nom du package | Étiquettes du 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 la *dernière balise vers* 1.0.2.


****  

| Référentiel. | Nom du package | Étiquettes du package | 
| --- | --- | --- | 
| R | `web-helper` |  *dernier* (alias pour la version 1.0.2) | 
| U | `web-helper` |  *dernier* (alias pour la version 1.0.1) | 

Cependant, le client npm ne voit jamais cette valeur de balise car la valeur de la *dernière version* de U est 1.0.1. L'exécution `npm install` sur le référentiel R immédiatement après la publication de la version 1.0.2 installe la version 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
```