control de etiquetas npm - CodeArtifact

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

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 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

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.

Etiquetas npm y la API CopyPackageVersions

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 Package name Etiquetas de paquetes

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.

Etiquetas npm y repositorios ascendentes

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 Package name Etiquetas de paquetes

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 Package name Etiquetas de paquetes

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 Package name Etiquetas de paquetes

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 Package name Etiquetas de paquetes

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