Administra paquetes de Node.js

En esta página, se describen las siguientes tareas:

  • Visualizar y borrar paquetes y versiones de paquetes
  • Visualizar, crear, actualizar y borrar etiquetas

Antes de comenzar

  1. Si el repositorio de destino no existe, crea un repositorio nuevo.
  2. Verifica que tengas los permisos necesarios para el repositorio.
  3. Configura la autenticación para la Administración de socios de red.
  4. (Opcional) Configura valores predeterminados para los comandos de gcloud.
  5. Si usas el asistente de credenciales de npm para la autenticación, obtén un token de acceso antes de conectarte a un repositorio con npm.

Roles obligatorios

A fin de obtener los permisos que necesitas para administrar paquetes, solicita a tu administrador que te otorgue el los siguientes roles de IAM en el repositorio:

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Obtén un token de acceso

Los tokens de acceso son válidos durante 60 minutos. Genera un token de acceso en breve antes de ejecutar comandos que interactúan con repositorios.

Para obtener un token, usa una de estas opciones:

  • Usa el comando npx para actualizar el token de acceso.

    1. Asegúrate de que las credenciales para conectarte al registro público de la Administración de socios de red estén en el archivo de configuración de la Administración de socios de red de tu usuario, ~/.npmrc.

    2. Ejecuta el siguiente comando en el directorio de tu proyecto de Node.js.

      npx google-artifactregistry-auth
      

      Si tu repositorio de Artifact Registry está configurado como tu registro global y tu paquetes no tienen alcance, usa el siguiente comando para que la se puede descargar el auxiliar de credenciales del registro público de npm en lugar de a tu repositorio de Artifact Registry.

      npm_config_registry=https://registry.npmjs.org npx google-artifactregistry-auth
      
  • Agrega una secuencia de comandos al archivo package.json en tu proyecto.

    "scripts": {
     "artifactregistry-login": "npx google-artifactregistry-auth"
    }
    

    Ejecuta la secuencia de comandos en el directorio de tu proyecto de Node.js.

    npm run artifactregistry-login
    

Artifact Registry lee la configuración del repositorio de Artifact Registry en tu archivo del proyecto .npmrc y las usa para agregar credenciales de token a tu usuario .npmrc. El almacenamiento del token en el archivo .npmrc del usuario aísla tus credenciales del código fuente y del sistema de control de fuente.

Agrega paquetes

Modos de repositorio: Estándar

Puedes publicar una versión específica de un paquete solo una vez. Esta es una restricción de npm para garantizar que el contenido de una versión del paquete publicada sea siempre el mismo. Como resultado, no podrás hacer lo siguiente:

  • Reemplazar una versión del paquete si la vuelves a publicar en el repositorio
  • Quitar un paquete o su versión del repositorio y, luego, publicar un paquete con el mismo nombre y el mismo número de versión.

Si no especificas una etiqueta cuando publicas un paquete, npm agregará la etiqueta latest. Para simplificar la instalación de tus paquetes en una etapa de desarrollo específica, procura publicar tus paquetes con una etiqueta, como beta o dev.

Artifact Registry aplica nombres de paquetes alfanuméricos en minúscula para npm paquetes.

Para agregar un paquete, haz lo siguiente:

  1. Asegúrate de que el nombre del paquete en package.json incluya el elemento scope configurado para tu repositorio. El siguiente ejemplo muestra un paquete con el alcance dev-repo.

    "name": "@dev-repo/my-package"
    
  2. Si usas el asistente de credenciales Para autenticar con un token de acceso, obtén uno nuevo.

  3. Agrega paquetes al repositorio. Puedes usar un comando de npm o yarn.

    Para etiquetar el paquete, incluye la marca --tag y reemplaza TAG. con la etiqueta que quieres usar. Si no incluyes la marca --tag, npm configura automáticamente la etiqueta como latest.

    npm publish --tag=TAG
    
    yarn publish --tag TAG
    

Visualiza paquetes y versiones

Modos de repositorio: Estándar, remoto, virtual

Para obtener información del paquete con npm o yarn, haz lo siguiente:

  1. Si usas el asistente de credenciales Para autenticar con un token de acceso, obtén uno nuevo.

  2. Ejecuta el comando correspondiente:

    npm view
    
    yarn info
    

Para ver paquetes y versiones de paquetes con la consola de Google Cloud o gcloud:

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio correspondiente.

    En la página Paquetes, se enumeran los paquetes del repositorio.

  3. Haz clic en un paquete para ver las versiones de este.

gcloud

Para enumerar los paquetes en un repositorio, ejecuta el siguiente comando:

gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]

Donde

  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es un regional o multirregional location. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar el valor predeterminado.

Para ver las versiones de un paquete, ejecuta el siguiente comando:

gcloud artifacts versions list --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION]

Donde

  • PACKAGE es el ID del paquete o el identificador completamente calificado. para el paquete.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es un regional o multirregional location. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar el valor predeterminado.

Visualizar paquetes y versiones desde la consola de Google Cloud o gcloud CLI solo está disponible para los repositorios estándar y remotos.

Para los repositorios remotos, la lista que se devuelve debe incluir todos los las dependencias transitivas que se almacenan en caché en el repositorio.

Enumera los archivos

Modos de repositorio: Estándar, remoto

Puedes enumerar archivos de un repositorio, archivos de todas las versiones de un paquete o archivos en una versión específica de un paquete.

Para todos los siguientes comandos, puedes establecer una cantidad máxima de archivos que se mostrarán Para ello, agrega la marca --limit al comando.

Para enumerar todos los archivos en el proyecto, el repositorio y ubicación cuando los valores predeterminados están configurados:

gcloud artifacts files list

Para mostrar una lista de los archivos en un proyecto, un repositorio y una ubicación especificados, ejecuta el comando:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

Para enumerar los archivos de todas las versiones de un paquete específico, ejecuta el siguiente comando:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

Para enumerar los archivos de una versión de paquete específica, haz lo siguiente:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
Para enumerar los archivos de una etiqueta específica, sigue estos pasos:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

Reemplaza los siguientes valores:

  • LOCATION: el regional o multirregional location del repositorio.
  • PROJECT: El ID del proyecto de Google Cloud. Si el ID de tu proyecto contiene dos puntos (`:`), consulta Proyectos con alcance de dominio.
  • REPOSITORY: Es el nombre del repositorio en el que se encuentra la imagen. cuando se almacena.
  • PACKAGE: Es el nombre del paquete.
  • VERSION: Es la versión del paquete.
  • TAG: Es la etiqueta asociada con el paquete.

Ejemplos

Ten en cuenta la siguiente información del paquete:

  • Proyecto: my-project
  • Repositorio: my-repo
  • Ubicación del repositorio: us-west1
  • Paquete: my-app

Con el siguiente comando, se enumeran todos los archivos del repositorio my-repo del Ubicación us-west1 dentro del proyecto predeterminado:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
El siguiente comando muestra una lista de los archivos de la versión 1.0 del paquete.

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=1.0
El siguiente comando muestra una lista de los archivos de la versión del paquete con el etiqueta 1.0-dev

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --tag=1.0-dev

Etiqueta paquetes

Modos de repositorio: Estándar

Puedes ver, agregar, actualizar y borrar etiquetas. Las etiquetas pueden ayudarte a administrar las versiones semánticas de tus paquetes y optimizar su instalación en una etapa específica de desarrollo.

Por ejemplo, puedes etiquetar la compilación candidata para lanzamiento actual con rc. Luego, tu equipo podrá instalar la versión correcta según la etiqueta en lugar de un especificador de versión. Si anulas la publicación de versiones previas al lanzamiento sin usar, no se romperán las dependencias del paquete candidato.

Visualiza etiquetas

Para ver las etiquetas de un paquete, haz lo siguiente:

Consola

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en el paquete para ver las versiones y las etiquetas asociadas.

  3. Selecciona la versión del paquete que deseas etiquetar.

  4. En la fila de la versión seleccionada, haz clic en Más acciones (Más acciones) y, luego, en Editar etiquetas.

  5. Escribe las etiquetas nuevas en el campo y haz clic en GUARDAR.

gcloud

Ejecuta el comando:

gcloud artifacts tags list --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION]

Donde

  • PACKAGE es el nombre del paquete en el repositorio.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es una ubicación regional o multirregional. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.

Por ejemplo, para ver las etiquetas del paquete my-package del repositorio my-repo en la ubicación predeterminada, ejecuta el siguiente comando:

gcloud artifacts tags list --package=my-pkg --repository=my-repo

Crea etiquetas

Puedes crear una etiqueta para una versión específica de un paquete.

Para etiquetar una imagen existente en un repositorio, haz lo siguiente:

Consola

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en el paquete para ver las versiones de este.

  3. Selecciona la versión del paquete que deseas etiquetar.

  4. En la fila de la versión seleccionada, haz clic en Más acciones (Más acciones) y, luego, en Editar etiquetas.

  5. Escribe las etiquetas nuevas en el campo y haz clic en GUARDAR.

gcloud

Ejecuta el siguiente comando:

gcloud artifacts tags create TAG --package=PACKAGE \
    version=VERSION [--location=LOCATION] [--repository=REPOSITORY]

Donde

  • TAG es la etiqueta que deseas aplicar al paquete.
  • PACKAGE es el nombre del paquete en el repositorio.
  • VERSION es la versión del paquete que deseas etiquetar.
  • LOCATION es una ubicación regional o multirregional. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.

Por ejemplo, a fin de crear la etiqueta release-candidate para la versión 1.0.0 del paquete my-package en el repositorio my-repo en la ubicación predeterminada, ejecuta el siguiente comando:

gcloud artifacts tags create release-candidate --version=1.0.0 \
    --package=my-pkg --repository=my-repo

Actualiza etiquetas

Puedes cambiar una etiqueta asociada con la versión de un paquete.

Para cambiar una etiqueta existente, haz lo siguiente:

Consola

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en el paquete para ver las versiones de este.

  3. Selecciona la versión del paquete con la etiqueta que deseas cambiar.

  4. En la fila de la versión seleccionada, haz clic en Más acciones (Más acciones) y, luego, en Editar etiquetas.

  5. Edita la etiqueta y haz clic en GUARDAR.

gcloud

Ejecuta el siguiente comando:

gcloud artifacts tags update TAG --package=PACKAGE \
    version=VERSION [--location=LOCATION] [--repository=REPOSITORY]

Donde

  • TAG es la etiqueta que deseas aplicar al paquete.
  • PACKAGE es el nombre del paquete en el repositorio.
  • VERSION es la versión del paquete que deseas etiquetar.
  • LOCATION es una ubicación regional o multirregional. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.

Por ejemplo, para cambiar la etiqueta de la versión 1.0.0 del paquete my-package a production en el repositorio my-repo en la ubicación predeterminada, ejecuta el siguiente comando:

gcloud artifacts tags update production --version=1.0.0 \
    --package=my-pkg --repository=my-repo

Quita las etiquetas de versiones de paquetes

Puedes quitar una etiqueta existente de una versión de un paquete.

Para quitar una etiqueta, haz lo siguiente:

Consola

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. Haz clic en la imagen para ver las versiones de esta.

  3. Selecciona la versión de la imagen de la que deseas quitar una etiqueta.

  4. En la fila de la versión seleccionada, haz clic en Más acciones (Más acciones) y, luego, en Editar etiquetas.

  5. Borra la etiqueta y haz clic en GUARDAR.

gcloud

Ejecuta el siguiente comando:

gcloud artifacts tags delete TAG --package=PACKAGE \
    [--location=<LOCATION] [--repository=REPOSITORY]

Donde

  • TAG es la etiqueta que deseas aplicar al paquete.
  • PACKAGE es el nombre del paquete en el repositorio.
  • LOCATION es una ubicación regional o multirregional. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.

Por ejemplo, para quitar la etiqueta release-candidate del paquete my-package en el repositorio my-repo en la ubicación predeterminada, ejecuta el siguiente comando:

gcloud artifacts tags delete release-candidate --package=my-pkg \
    --repository=my-repo

Instala paquetes

Modos de repositorio: Estándar, remoto, virtual

Para instalar un paquete desde el repositorio de paquetes de Node.js, haz lo siguiente:

  1. Si usas el asistente de credenciales Para autenticar con un token de acceso, obtén uno nuevo.

  2. Usa el comando npm install o yarn add.

    npm

    Para instalar la versión con la etiqueta latest, haz lo siguiente:

    npm install @SCOPE/PACKAGE
    

    Para instalar una versión con una etiqueta diferente, sigue estos pasos:

    npm install @SCOPE/PACKAGE@TAG
    

    Para instalar una versión específica, sigue estos pasos:

    npm install @SCOPE/PACKAGE@VERSION
    

    yarn

    Para instalar la versión con la etiqueta latest, haz lo siguiente:

    yarn add @SCOPE/PACKAGE
    

    Para instalar una versión con una etiqueta diferente, sigue estos pasos:

    yarn add @SCOPE/PACKAGE@TAG
    

    Para instalar una versión específica, sigue estos pasos:

    yarn add @SCOPE/PACKAGE@VERSION
    

    Reemplaza los siguientes valores:

    • SCOPE es el alcance asociado con el repositorio. Si el El repositorio de paquetes de Node.js no está configurado con un permiso; omite este paso @SCOPE/ del comando.
    • PACKAGE es el nombre del paquete en el repositorio.
    • TAG es la etiqueta de la versión que deseas instalar.
    • VERSION es el número de versión que deseas instalar.

Cuando especifiques un paquete como dependencia en package.json, asegúrate de que incluyes el alcance del repositorio. En el siguiente ejemplo, se muestra el permiso @dev-repo para un paquete llamado my-package.

"dependencies": {
  "@dev-repo/my-package": ">=1.0.0"
}

Para los repositorios estándar, debes descargar un paquete directamente desde el repositorio.

En el caso de un repositorio remoto, debes descargar una copia almacenada en caché del paquete y su dependencias. Si no existe una copia almacenada en caché, el repositorio remoto descarga el paquete desde la fuente upstream y lo almacena en caché antes de proporcionárselo. Puedes verificar que el repositorio remoto haya recuperado los paquetes del fuente upstream mediante la visualización de la lista de paquetes en el repositorio

Para un repositorio virtual, Artifact Registry busca repositorios ascendentes para el paquete solicitado.

  • Los repositorios remotos upstream descargarán y almacenarán en caché el paquete solicitado si no existe una copia almacenada en caché. Solo se solicitan los repositorios virtuales. paquetes, estos no los almacenan.
  • Si solicitas una versión que está disponible en más de un flujo ascendente repositorio, Artifact Registry elige un repositorio upstream para usar según la configuración de prioridad establecida para el repositorio virtual.

Por ejemplo, considera un repositorio virtual con la siguiente configuración de prioridad. para repositorios ascendentes:

  • main-repo: Se estableció la prioridad en 100
  • secondary-repo1: Se estableció la prioridad en 80.
  • secondary-repo2: Se estableció la prioridad en 80.
  • test-repo: Se estableció la prioridad en 20.

main-repo tiene el valor de prioridad más alto, por lo que el repositorio virtual siempre lo busca primero.

secondary-repo1 y secondary-repo2 tienen la prioridad establecida en 80. Si un El paquete solicitado no está disponible en main-repo, Artifact Registry buscará estos repositorios a continuación. Dado que ambos tienen el mismo valor de prioridad, Artifact Registry puede entregar un paquete desde cualquiera de los repositorios si la versión está disponible en ambos.

test-repo tiene el valor de prioridad más bajo y entregará un artefacto almacenado si ninguno de los otros repositorios ascendentes la tiene.

Borra paquetes

Modos de repositorio: Estándar, remoto

Puedes borrar un paquete y todas sus versiones, o bien borrar una versión específica.

  • Una vez que borres un paquete, no podrás deshacer la acción.
  • En el caso de los repositorios remotos, solo se borra la copia almacenada en caché del paquete. El fuente upstream no se ve afectada. Si borras un paquete almacenado en caché, Artifact Registry la descargará y almacenará en caché la próxima vez que de destino recibe una solicitud para la misma versión del paquete.

Después de publicar una versión de un paquete, no puedes volver a publicar un paquete con la misma combinación de nombre y versión, incluso después de borrar la versión. Este es un npm restricted para garantizar que el contenido de una versión publicada del paquete sea siempre el mismo.

Si deseas alentar a los usuarios a instalar una versión de paquete actualizada, usa el npm deprecate para marcar el versión anterior del paquete como obsoleta. Cuando un usuario intenta instalar el obsoleto, Artifact Registry mostrará una advertencia de baja.

Antes de borrar un paquete o una versión de un paquete, verifica que se haya comunicado o abordado cualquier dependencia importante en este.

Para borrar un paquete, haz lo siguiente:

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio correspondiente.

    En la página Paquetes, se enumeran los paquetes del repositorio.

  3. Selecciona el paquete que quieres borrar.

  4. Haz clic en BORRAR.

  5. En el cuadro de diálogo de confirmación, haz clic en BORRAR.

gcloud

Ejecuta el siguiente comando:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

Dónde

  • PACKAGE es el nombre del paquete en el repositorio.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es un regional o multirregional location. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar el valor predeterminado.
  • --async se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.

Sigue estos pasos para borrar versiones de un paquete:

Console

  1. Abre la página Repositorios en la consola de Google Cloud.

    Abrir la página Repositorios

  2. En la lista de repositorios, haz clic en el repositorio correspondiente.

    En la página Paquetes, se enumeran los paquetes del repositorio.

  3. Haz clic en un paquete para ver sus versiones.

  4. Selecciona las versiones que deseas borrar.

  5. Haz clic en BORRAR.

  6. En el cuadro de diálogo de confirmación, haz clic en BORRAR.

gcloud

Ejecuta el siguiente comando:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

Dónde

  • PACKAGE es el nombre del paquete en el repositorio.
  • REPOSITORY es el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.
  • LOCATION es un regional o multirregional location. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar el valor predeterminado.
  • --async se muestra de inmediato, sin necesidad de esperar a que se complete la operación en curso.

¿Qué sigue?