Gérer les packages Node.js

Cette page décrit les tâches suivantes :

  • Afficher et supprimer des packages et des versions de packages
  • Afficher, créer, mettre à jour et supprimer des tags

Avant de commencer

  1. Si le dépôt cible n'existe pas, créez un dépôt.
  2. Vérifiez que vous disposez des autorisations requises pour le dépôt.
  3. Configurez l'authentification pour npm.
  4. (Facultatif) Configurez des valeurs par défaut pour les commandes gcloud.
  5. Si vous utilisez l'assistant d'identification npm pour l'authentification, procurez-vous un jeton d'accès avant de vous connecter à un dépôt avec npm.

Obtenir un jeton d'accès

Les jetons d'accès sont valides pendant 60 minutes. Générez un jeton d'accès peu de temps avant d'exécuter des commandes qui interagissent avec les dépôts.

Pour obtenir un jeton, utilisez l'une des options suivantes:

  • Utilisez la commande npx pour actualiser le jeton d'accès.

    1. Assurez-vous que les identifiants de connexion au registre npm public se trouvent dans votre fichier de configuration npm d'utilisateur ~/.npmrc.

    2. Exécutez la commande suivante dans le répertoire de votre projet Node.js.

      npx google-artifactregistry-auth
      
  • Ajoutez un script au fichier package.json dans votre projet.

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

    Exécutez le script dans le répertoire de votre projet Node.js.

    npm run artifactregistry-login
    

Artifact Registry lit les paramètres du dépôt Artifact Registry dans votre fichier de projet .npmrc et les utilise pour ajouter des identifiants de jeton à votre fichier utilisateur .npmrc. Le stockage du jeton dans votre fichier .npmrc utilisateur isole vos identifiants de votre code source et de votre système de contrôle des sources.

Ajouter des packages

Vous ne pouvez publier une version spécifique d'un package qu'une seule fois. Il s'agit d'une restriction npm permettant de s'assurer que le contenu d'une version de package publiée est toujours le même. Par conséquent, vous ne pouvez pas:

  • Écraser une version de package en la republiant dans le dépôt
  • Supprimer un package ou sa version du dépôt, puis publier un package portant le même nom et le même numéro de version

Si vous ne spécifiez pas de tag lors de la publication d'un package, npm ajoute le tag latest. Pour simplifier l'installation de vos packages à un stade spécifique du développement, envisagez de les publier avec un tag, tel que beta ou dev.

Pour ajouter un package :

  1. Assurez-vous que le nom du package dans package.json inclut le champ d'application configuré pour votre dépôt. L'exemple suivant présente un package avec le champ d'application dev-repo.

    "name": "@dev-repo/my-package"
    
  2. Si vous utilisez l'assistant d'identification pour vous authentifier avec un jeton d'accès, procurez-vous un nouveau jeton.

  3. Ajoutez des packages au dépôt. Vous pouvez utiliser une commande npm ou yarn.

    Pour ajouter un tag au package, incluez l'option --tag et remplacez TAG par le tag que vous souhaitez utiliser. Si vous n'incluez pas l'option --tag, npm définit automatiquement le tag sur latest.

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

Afficher des packages et des versions

Pour obtenir des informations sur le package avec npm ou yarn, procédez comme suit:

  1. Si vous utilisez l'assistant d'identification pour vous authentifier avec un jeton d'accès, procurez-vous un nouveau jeton.

  2. Exécutez la commande appropriée:

    npm view
    
    yarn info
    

Pour afficher les packages et les versions de packages à l'aide de Google Cloud Console ou de gcloud, procédez comme suit:

Console

  1. Ouvrez la page Dépôts dans Google Cloud Console.

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, cliquez sur le dépôt approprié.

    La page Packages répertorie les packages du dépôt.

  3. Cliquez sur un package pour en afficher les versions.

gcloud

Pour répertorier les packages d'un dépôt, exécutez la commande suivante :

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

Où :

  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
  • LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.

Pour afficher les versions d'un package, exécutez la commande suivante :

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

Où :

  • PACKAGE est l'ID du package ou son identifiant complet.
  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
  • LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.

Ajout de tags aux packages

Vous pouvez afficher, ajouter, mettre à jour et supprimer des tags. Les tags peuvent vous aider à gérer les versions sémantiques de vos packages et à rationaliser l'installation des packages à un stade spécifique du développement.

Par exemple, vous pouvez ajouter un tag à la version finale de la version finale avec rc. Votre équipe peut ensuite installer la version appropriée en fonction du tag plutôt qu'un spécificateur de version. L'annulation de la publication des versions préliminaires non utilisées n'atravera pas vos dépendances sur le package de versions candidates.

Afficher des tags

Pour afficher les tags d'un package, procédez comme suit :

Console

  1. Ouvrez la page Dépôts dans Cloud Console.

    Ouvrir la page "Dépôts"

  2. Cliquez sur le package pour afficher les versions et les tags associés.

  3. Sélectionnez la version du package à taguer.

  4. Sur la ligne de la version sélectionnée, cliquez sur Autres actions (Autres actions), puis sur Modifier les tags.

  5. Saisissez de nouveaux tags dans le champ, puis cliquez sur ENREGISTRER.

gcloud

Exécutez la commande suivante :

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

Où :

  • PACKAGE est le nom du package dans le dépôt.
  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
  • LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.

Par exemple, pour afficher les tags du package my-package dans le dépôt my-repo à l'emplacement par défaut, exécutez la commande suivante:

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

Créer des tags

Vous pouvez créer un tag pour une version spécifique d'un package.

Pour ajouter un tag à une image existante d'un dépôt, procédez comme suit :

Console

  1. Ouvrez la page Dépôts dans Cloud Console.

    Ouvrir la page "Dépôts"

  2. Cliquez sur le package pour afficher ses versions.

  3. Sélectionnez la version du package à taguer.

  4. Sur la ligne de la version sélectionnée, cliquez sur Autres actions (Autres actions), puis sur Modifier les tags.

  5. Saisissez de nouveaux tags dans le champ, puis cliquez sur ENREGISTRER.

gcloud

Exécutez la commande suivante :

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

Où :

  • TAG est le tag que vous souhaitez appliquer au package.
  • PACKAGE est le nom du package dans le dépôt.
  • VERSION est la version du package auquel vous souhaitez ajouter des tags.
  • LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.

Par exemple, pour créer le tag release-candidate pour la version 1.0.0 du package my-package dans le dépôt my-repo à l'emplacement par défaut, exécutez la commande suivante :

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

Mettre à jour des tags

Vous pouvez modifier une balise associée à une version de package.

Pour modifier un tag existant, procédez comme suit :

Console

  1. Ouvrez la page Dépôts dans Cloud Console.

    Ouvrir la page "Dépôts"

  2. Cliquez sur le package pour afficher ses versions.

  3. Sélectionnez la version du package à modifier.

  4. Sur la ligne de la version sélectionnée, cliquez sur Autres actions (Autres actions), puis sur Modifier les tags.

  5. Modifiez le tag, puis cliquez sur ENREGISTRER.

gcloud

Exécutez la commande suivante :

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

Où :

  • TAG est le tag que vous souhaitez appliquer au package.
  • PACKAGE est le nom du package dans le dépôt.
  • VERSION est la version du package auquel vous souhaitez ajouter des tags.
  • LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.

Par exemple, pour définir le tag de la version 1.0.0 du package my-package sur production dans le dépôt my-repo à l'emplacement par défaut, exécutez la commande suivante:

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

Annuler l'ajout de tags sur les versions du package

Vous pouvez supprimer un tag existant d'une version du package.

Pour supprimer un tag, procédez comme suit :

Console

  1. Ouvrez la page Dépôts dans Cloud Console.

    Ouvrir la page "Dépôts"

  2. Cliquez sur l'image pour en afficher les versions.

  3. Sélectionnez la version de l'image pour supprimer le tag.

  4. Sur la ligne de la version sélectionnée, cliquez sur Autres actions (Autres actions), puis sur Modifier les tags.

  5. Supprimez le tag, puis cliquez sur ENREGISTRER.

gcloud

Exécutez la commande suivante :

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

Où :

  • TAG est le tag que vous souhaitez appliquer au package.
  • PACKAGE est le nom du package dans le dépôt.
  • LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.

Par exemple, pour supprimer le tag release-candidate du package my-package du dépôt my-repo à l'emplacement par défaut, exécutez la commande suivante:

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

Installer des packages

Pour installer un package à partir du dépôt de packages Node.js, procédez comme suit:

  1. Si vous utilisez l'assistant d'identification pour vous authentifier avec un jeton d'accès, procurez-vous un nouveau jeton.

  2. Exécutez la commande npm install ou yarn add.

    npm

    Pour installer une version avec la balise latest, procédez comme suit:

    npm install @SCOPE/PACKAGE
    

    Pour installer une version avec une autre balise:

    npm install @SCOPE/PACKAGE@TAG
    

    Pour installer une version spécifique, procédez comme suit:

    npm install @SCOPE/PACKAGE@VERSION
    

    yarn

    Pour installer une version avec la balise latest, procédez comme suit:

    yarn add @SCOPE/PACKAGE
    

    Pour installer une version avec une autre balise:

    yarn add @SCOPE/PACKAGE@TAG
    

    Pour installer une version spécifique, procédez comme suit:

    yarn add @SCOPE/PACKAGE@VERSION
    

    Remplacez les valeurs suivantes :

    • SCOPE est le champ d'application associé au dépôt. Si le dépôt de packages Node.js n'est pas configuré avec un champ d'application, omettez @SCOPE/ dans la commande.
    • PACKAGE est le nom du package dans le dépôt.
    • TAG est la balise correspondant à la version que vous souhaitez installer.
    • VERSION est le numéro de version que vous souhaitez installer.

Lorsque vous spécifiez un package en tant que dépendance dans package.json, veillez à inclure le champ d'application du dépôt. L'exemple suivant montre le champ d'application @dev-repo d'un package nommé my-package.

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

Supprimer des packages

Une fois la version de package publiée, vous ne pouvez pas republier un package du même nom et de la même version, même après la suppression de la version. Il s'agit d'une restriction npm permettant de s'assurer que le contenu d'une version de package publiée est toujours le même.

Si vous souhaitez encourager les utilisateurs à installer une version mise à jour du package, exécutez la commande npm deprecate pour marquer l'ancienne version du package comme étant obsolète. Lorsqu'un utilisateur tente d'installer le package obsolète, Artifact Registry renvoie un avertissement d'obsolescence.

Avant de supprimer un package ou une version de package, vérifiez que vous avez communiqué ou résolu toute dépendance importante associée.

Pour supprimer un package, procédez comme suit :

Console

  1. Ouvrez la page Dépôts dans Google Cloud Console.

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, cliquez sur le dépôt approprié.

    La page Packages répertorie les packages du dépôt.

  3. Sélectionnez le package à supprimer.

  4. Cliquez sur SUPPRIMER.

  5. Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.

gcloud

Exécutez la commande suivante :

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

Où :

  • PACKAGE est le nom du package dans le dépôt.
  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
  • LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
  • --async renvoie immédiatement une réponse, sans attendre la fin de l'opération en cours.

Pour supprimer des versions d'un package, procédez comme suit :

Console

  1. Ouvrez la page Dépôts dans Google Cloud Console.

    Ouvrir la page "Dépôts"

  2. Dans la liste des dépôts, cliquez sur le dépôt approprié.

    La page Packages répertorie les packages du dépôt.

  3. Cliquez sur un package pour afficher ses versions.

  4. Sélectionnez les versions que vous souhaitez supprimer.

  5. Cliquez sur SUPPRIMER.

  6. Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.

gcloud

Exécutez la commande suivante :

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

Où :

  • PACKAGE est le nom du package dans le dépôt.
  • REPOSITORY est le nom du dépôt. Si vous avez configuré un dépôt par défaut, vous pouvez omettre cet indicateur pour utiliser le dépôt par défaut.
  • LOCATION est un emplacement régional ou multirégional. Utilisez cette option pour afficher les dépôts dans un emplacement spécifique. Si vous avez configuré un emplacement par défaut, vous pouvez omettre cette option pour utiliser la valeur par défaut.
  • --async est immédiatement renvoyé, sans attendre la fin de l'opération en cours.

Étape suivante