

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# control de etiquetas npm
<a name="npm-tags"></a>

 Los registros npm admiten *etiquetas*, que son alias de cadena para las versiones de los paquetes. Puede usar etiquetas para proporcionar un alias en lugar de números de versión. Por ejemplo, puede tener un proyecto con varios flujos de desarrollo y usar una etiqueta diferente (por ejemplo `stable`, `beta`, `dev`, `canary`) para cada flujo. Para obtener más información, consulte [dist-tag](https://docs.npmjs.com/cli/dist-tag) en el sitio web de npm. 

 De forma predeterminada, npm usa la etiqueta `latest` para identificar la versión actual de un paquete. `npm install {{pkg}}`(sin especificador `@{{version}}` `@{{tag}}`) instala la última etiqueta. Por lo general, los proyectos utilizan la etiqueta más reciente solo para las versiones estables. Se utilizan otras etiquetas para las versiones inestables o preliminares. 

## Editar etiquetas con el cliente npm
<a name="editing-tags-with-the-npm-client"></a>

 Los tres `npm dist-tag` comandos (`add`, `rm`, y `ls`) funcionan de forma idéntica en los repositorios de CodeArtifact que en el [registro npm predeterminado](https://registry.npmjs.com/).

## Etiquetas npm y la API CopyPackageVersions
<a name="tags-and-cpv"></a>

Cuando usa la API `CopyPackageVersions` para copiar una versión del paquete npm, todas las etiquetas que dan un alias a esa versión se copian en el repositorio de destino. Cuando una versión que se está copiando tiene una etiqueta que también está presente en el destino, la operación de copia establece el valor de la etiqueta en el repositorio de destino para que coincida con el valor del repositorio de origen.

Por ejemplo, supongamos que tanto el repositorio S como el repositorio D contienen una única versión del paquete `web-helper` con el conjunto de etiquetas latest, como se muestra en esta tabla.


****  

| Repositorio | Nombre del paquete | Etiquetas del paquete | 
| --- | --- | --- | 
| S | `web-helper` |  *latest* (alias de la versión 1.0.1) | 
| D | `web-helper` |  *latest* (alias de la versión 1.0.0) | 

 `CopyPackageVersions` se invoca para copiar `web-helper` 1.0.1 de S a D. Una vez finalizada la operación, la etiqueta `latest` en `web-helper` del repositorio D pasa a ser el alias 1.0.1, no el 1.0.0.

Si necesita cambiar las etiquetas después de copiarlas, utilice el comando `npm dist-tag` para modificarlas directamente en el repositorio de destino. Para obtener más información sobre la API `CopyPackageVersions`, consulte [Copiar paquetes entre repositorios](copy-package.md).

## Etiquetas npm y repositorios ascendentes
<a name="tags-and-upstreams"></a>

Cuando npm solicita las etiquetas de un paquete y las versiones de ese paquete también están presentes en un repositorio ascendente, CodeArtifact fusiona las etiquetas antes de devolverlas al cliente. Por ejemplo, un repositorio denominado R tiene un repositorio ascendente denominado U. En la siguiente tabla se muestran las etiquetas de un paquete denominado `web-helper` que está presente en ambos repositorios.


****  

| Repositorio | Nombre del paquete | Etiquetas del paquete | 
| --- | --- | --- | 
| R | `web-helper` |  *latest* (alias de la versión 1.0.0) | 
| U | `web-helper` |  *alpha* (alias de la versión 1.0.1) | 

En este caso, cuando el cliente npm busca las etiquetas del paquete `web-helper` del repositorio R, recibe las etiquetas *latest* y *alpha*. Las versiones a las que apuntan las etiquetas no cambiarán.

Cuando la misma etiqueta está presente en el mismo paquete tanto en el repositorio ascendente como en el descendente, CodeArtifact usa la etiqueta que está presente en el repositorio *ascendente*. Por ejemplo, supongamos que las etiquetas de *webhelper* se han modificado para que tengan el siguiente aspecto.


****  

| Repositorio | Nombre del paquete | Etiquetas del paquete | 
| --- | --- | --- | 
| R | `web-helper` |  *latest* (alias de la versión 1.0.0) | 
| U | `web-helper` |  *latest* (alias de la versión 1.0.1) | 

En este caso, cuando el cliente npm busque las etiquetas del paquete *web-helper* del repositorio R, la etiqueta *latest* usará el alias de la versión *1.0.1* porque es lo que está en el repositorio ascendente. Esto facilita el consumo de nuevas versiones de paquetes en un repositorio ascendente que aún no están presentes en un repositorio descendente mediante la ejecución de `npm update`.

El uso de la etiqueta en el repositorio ascendente puede resultar problemático a la hora de publicar nuevas versiones de un paquete en un repositorio descendente. Por ejemplo, supongamos que la última etiqueta del paquete *web-helper* es la misma tanto en R como en U.


****  

| Repositorio | Nombre del paquete | Etiquetas del paquete | 
| --- | --- | --- | 
| R | `web-helper` |  *latest* (alias de la versión 1.0.1) | 
| U | `web-helper` |  *latest* (alias de la versión 1.0.1) | 

Cuando la versión 1.0.2 se publica en R, npm actualiza la etiqueta *latest* a 1.0.2.


****  

| Repositorio | Nombre del paquete | Etiquetas del paquete | 
| --- | --- | --- | 
| R | `web-helper` |  *latest* (alias de la versión 1.0.2) | 
| U | `web-helper` |  *latest* (alias de la versión 1.0.1) | 

Sin embargo, el cliente npm nunca ve este valor de etiqueta porque el valor de *latest* en U es 1.0.1. Si se ejecuta `npm install` en el repositorio R inmediatamente después de publicar la 1.0.2, se instala la 1.0.1 en lugar de la versión que se acaba de publicar. Para instalar la versión publicada más recientemente, debe especificar la versión exacta del paquete, de la siguiente manera.

```
npm install web-helper@1.0.2
```