Skip to main content

Utilisation du registre npm

Vous pouvez configurer npm pour publier des packages GitHub Packages vers et utiliser des packages stockés en GitHub Packages tant que dépendances dans un projet npm.

Remarque

Ce type de package peut ne pas être disponible pour votre instance, car les administrateurs de site peuvent activer ou désactiver chaque type de package pris en charge. Pour plus d’informations, consultez « Configuration de la prise en charge de l’écosystème de packages pour votre entreprise ».

Limites pour les versions de npm publiées

Si vous publiez plus de 1 000 versions de paquet npm sur GitHub Packages, vous pourriez rencontrer des problèmes de performances et des dépassements de délai lors de l’utilisation.

À l’avenir, pour améliorer les performances du service, vous ne pourrez pas publier plus de 1 000 versions d’un package sur GitHub. Toutes les versions publiées avant d’atteindre cette limite seront toujours lisibles.

Si vous atteignez cette limite, envisagez de supprimer des versions du package ou de contacter le support technique pour obtenir de l'aide. Une fois cette limite appliquée, notre documentation sera mise à jour avec un moyen de la contourner. Pour plus d’informations, consultez Suppression et restauration d'un package ou Introduction aux packages GitHub.

Authentification à GitHub Packages

Remarque

GitHub Packages prend uniquement en charge l’authentification à l’aide d’un personal access token (classic). Pour plus d’informations, consultez « Gestion de vos jetons d’accès personnels ».

Vous avez besoin d’un jeton d’accès pour publier, installer et supprimer des packages privés, internes et publics.

Vous pouvez utiliser un personal access token (classic) pour vous authentifier auprès de GitHub Packages ou de l’API GitHub. Quand vous créez un personal access token (classic), vous pouvez l’attribuer à différentes étendues selon vos besoins. Pour plus d’informations sur les étendues liées aux packages pour un personal access token (classic), consultez À propos des autorisations pour les packages GitHub.

Pour vous authentifier sur un registre GitHub Packages dans un workflow GitHub Actions, vous pouvez utiliser :

  • GITHUB_TOKEN pour publier des packages associés au dépôt du workflow.
  • Un personal access token (classic) avec au moins read:packages la possibilité d'installer des paquets associés à d'autres référentiels privés (GITHUB_TOKEN peut être utilisé si le référentiel a un accès en lecture au paquet. Consultez Configuration du contrôle d’accès et de la visibilité d’un package.

Authentification avec un personal access token

Vous devez utiliser un personal access token (classic) avec les étendues appropriées pour publier et installer des packages dans GitHub Packages. Pour plus d’informations, consultez « Introduction aux packages GitHub ».

Vous pouvez vous authentifier auprès de GitHub Packages avec npm, soit en modifiant votre fichier ~/.npmrc propre à l’utilisateur pour y inclure votre personal access token (classic), soit en vous connectant à npm en ligne de commande à l’aide de votre nom d’utilisateur et de votre personal access token.

Pour vous authentifier en ajoutant votre personal access token (classic) à votre fichier ~/.npmrc, modifiez le fichier ~/.npmrc de votre projet pour inclure la ligne suivante, en remplaçant HOSTNAME par le nom d’hôte de votre instance GitHub Enterprise Server et TOKEN par votre personal access token. Créer un nouveau fichier ~/.npmrc s’il n’existe pas.

Si l’isolation de sous-domaine est activée pour votre instance :

//npm.HOSTNAME//:_authToken=TOKEN

Si l’isolation des sous-domaines est désactivée pour votre instance :

//HOSTNAME/_registry/npm/:_authToken=TOKEN

Pour vous authentifier en vous connectant à npm, utilisez la npm login commande, en remplaçant le nom d’utilisateur par votre GitHub nom d’utilisateur, TOKEN par votre personal access token (classic)EMAIL-ADDRESS public et votre adresse e-mail.

Si vous utilisez l’interface CLI NPM version 9 ou ultérieure, et que vous vous connectez un registre privé ou que vous vous en déconnectez à l’aide de la ligne de commande, vous devez utiliser l’option --auth-type=legacy pour lire les détails de votre authentification à partir d’invites au lieu d’utiliser le flux de connexion par défaut via un navigateur. Pour plus d’informations, consultez npm-login.

Si GitHub Packages ce n’est pas votre registre de packages par défaut pour l’utilisation de npm et que vous souhaitez utiliser la npm audit commande, nous vous recommandons d’utiliser l’indicateur --scope avec l’espace de noms qui héberge le package (le compte personnel ou l’organisation qui possède le référentiel où le package est hébergé) lorsque vous vous authentifiez GitHub Packages.

Si l’isolation de sous-domaine est activée pour votre instance :

$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://npm.HOSTNAME/

> Username: USERNAME
> Password: TOKEN

Si l’isolation des sous-domaines est désactivée pour votre instance :

$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://HOSTNAME/_registry/npm/
> Username: USERNAME
> Password: TOKEN

Publication d'un package

Remarque

Les noms et les étendues des packages doivent utiliser seulement des lettres minuscules.

Par défaut, votre package est publié dans le GitHub référentiel que vous spécifiez dans le name champ du package.json fichier. Par exemple, vous publiez un package nommé @my-org/test dans le my-org/testGitHub référentiel. Vous pouvez publier plusieurs packages dans le même GitHub référentiel en incluant un repository champ dans le package.json fichier. Pour plus d’informations, consultez Publication de plusieurs packages sur le même référentiel.

Vous pouvez configurer le mappage d’étendue pour votre projet en utilisant un fichier .npmrc local dans le projet ou en utilisant l’option publishConfig dans le package.json. GitHub Packages prend uniquement en charge les packages npm délimités. Les packages délimités ont des noms au format @NAMESPACE/PACKAGE-NAME. Les packages délimités commencent toujours par un symbole @. Il peut être nécessaire de mettre à jour le nom dans votre package.json pour utiliser le nom délimité. Par exemple, si vous êtes l’utilisateur octocat et que votre package s’appelle test, vous devez affecter le nom de package délimité comme suit : "name": "@octocat/test".

Après avoir publié un package, vous pouvez l'afficher sur GitHub. Pour plus d’informations, consultez « Affichage de packages ».

Publication d’un package en utilisant un fichier .npmrc local

Vous pouvez utiliser un fichier .npmrc pour configurer le mappage d’étendue pour votre projet. Dans le fichier .npmrc, utilisez l’URL GitHub Packages et le propriétaire du compte afin que GitHub Packages sache où acheminer les demandes de paquet. L’utilisation d’un .npmrc fichier empêche d’autres développeurs de publier accidentellement le package sur npmjs.org au lieu de GitHub Packages.

  1. Authentifiez-vous sur GitHub Packages. Pour plus d’informations, consultez Authentification auprès de GitHub Packages.
  2. Dans le même répertoire que votre fichier package.json, créez ou modifiez un fichier .npmrc pour inclure une ligne spécifiant l’URL de GitHub Packages et l’espace de noms où le package est hébergé. Remplacez NAMESPACE par le nom du compte d’utilisateur ou d’organisation propriétaire du dépôt contenant votre projet.

Si l’isolation de sous-domaine est activée :

@NAMESPACE:registry=https://npm.HOSTNAME

Si l’isolation de sous-domaine est désactivée :

@NAMESPACE:registry=https://HOSTNAME/_registry/npm
  1. Ajoutez le fichier .npmrc au dépôt où GitHub Packages peut trouver votre projet. Pour plus d’informations, consultez « Ajout d’un fichier à un référentiel ».

  2. Vérifiez le nom de votre package dans le package.json de votre projet. Le champ name doit contenir l’étendue et le nom du package. Par exemple, si votre package est appelé « test » et que vous le publiez dans l’organisation « My-org », GitHub le name champ de votre package.json fichier doit être @my-org/test.

  3. Vérifiez le champ repository dans le fichier package.json de votre projet. Le champ repository doit correspondre à l’URL de votre référentiel GitHub. Par exemple, si l’URL de votre référentiel est github.com/my-org/test, le champ du référentiel doit être https://github.com/my-org/test.git.

  4. Publiez le package :

    npm publish
    

Publication d’un package en utilisant publishConfig dans le fichier package.json

Vous pouvez utiliser l’élément publishConfig dans le fichier package.json pour spécifier le registre où vous voulez que le package soit publié. Pour plus d’informations, consultez publishConfig dans la documentation npm.

  1. Modifiez le fichier package.json pour votre package et incluez-y une entrée publishConfig.

    Si l’isolation de sous-domaine est activée pour votre instance :

    "publishConfig": {
      "registry": "https://npm. HOSTNAME/"
    },
    

    Si l’isolation des sous-domaines est désactivée pour votre instance :

    "publishConfig": {
      "registry": "https://HOSTNAME/_registry/npm/"
    },
    
  2. Vérifiez le champ repository dans le fichier package.json de votre projet. Le champ repository doit correspondre à l’URL de votre référentiel GitHub. Par exemple, si l’URL de votre référentiel est github.com/my-org/test, le champ du référentiel doit être https://github.com/my-org/test.git.

  3. Publiez le package :

    npm publish
    

Publication de plusieurs packages sur le même référentiel

Pour publier plusieurs packages lier au même dépôt, vous pouvez inclure l’URL du GitHub référentiel dans le repository champ du package.json fichier pour chaque package. Pour plus d’informations, consultez Création d’un fichier package.json et Création de modules Node.js dans la documentation npm.

Pour vous assurer que l’URL du référentiel est correcte, remplacez REPOSITORY par le nom du référentiel contenant le package que vous souhaitez publier, et OWNER par le nom du compte personnel ou de l’organisation sur GitHub lequel appartient le référentiel.

GitHub Packages correspond au référentiel en fonction de l’URL, au lieu du nom du package.

"repository":"https://HOSTNAME/OWNER/REPOSITORY",

Installation d’un package

Vous pouvez installer des packages depuis GitHub Packages en ajoutant les packages comme dépendances dans le fichier package.json de votre projet. Pour plus d’informations sur l’utilisation d’un fichier package.json dans votre projet, consultez Utilisation d’un package.json dans la documentation npm.

Par défaut, vous pouvez ajouter des packages provenant d’une seule organisation. Pour plus d’informations, consultez Installation de packages provenant d’autres organisations.

Vous devez également ajouter le .npmrc fichier à votre projet afin que toutes les demandes d’installation des packages passent par GitHub Packages. Lorsque vous routez toutes les demandes de package via GitHub Packages, vous pouvez utiliser des packages délimités et non étendus à partir de npmjs.org. Pour plus d’informations, consultez l’étendue npm dans la documentation npm.

  1. Authentifiez-vous sur GitHub Packages. Pour plus d’informations, consultez Authentification auprès de GitHub Packages.
  2. Dans le même répertoire que votre fichier package.json, créez ou modifiez un fichier .npmrc pour inclure une ligne spécifiant l’URL de GitHub Packages et l’espace de noms où le package est hébergé. Remplacez NAMESPACE par le nom du compte d’utilisateur ou d’organisation propriétaire du dépôt contenant votre projet.

Si l’isolation de sous-domaine est activée :

@NAMESPACE:registry=https://npm.HOSTNAME

Si l’isolation de sous-domaine est désactivée :

@NAMESPACE:registry=https://HOSTNAME/_registry/npm
  1. Ajoutez le fichier .npmrc au dépôt où GitHub Packages peut trouver votre projet. Pour plus d’informations, consultez « Ajout d’un fichier à un référentiel ».

  2. Configurez package.json dans votre projet afin d’utiliser le package que vous installez. Pour ajouter les dépendances de votre package au fichier package.json pour GitHub Packages, spécifiez le nom complet du package, tel que @my-org/server. Pour les packages provenant de npmjs.com, spécifiez le nom complet, comme @babel/core ou lodash. Remplacez ORGANIZATION_NAME/PACKAGE_NAME par votre dépendance de package.

    {
      "name": "@my-org/server",
      "version": "1.0.0",
      "description": "Server app that uses the ORGANIZATION_NAME/PACKAGE_NAME package",
      "main": "index.js",
      "author": "",
      "license": "MIT",
      "dependencies": {
        "ORGANIZATION_NAME/PACKAGE_NAME": "1.0.0"
      }
    }
    
  3. Installez le package.

    npm install
    

Installation de packages provenant d’autres organisations

Par défaut, vous ne pouvez utiliser GitHub Packages que des packages d’une organisation. Si vous souhaitez router les demandes de package vers plusieurs organisations et utilisateurs, vous pouvez ajouter des lignes supplémentaires à votre .npmrc fichier, en remplaçant HOSTNAME par le nom d’hôte et votre instance GitHub Enterprise ServerNAMESPACE par le nom du compte personnel ou de l’organisation qui possède le référentiel contenant le projet.

Si l’isolation de sous-domaine est activée pour votre instance :

@NAMESPACE:registry=https://npm.HOSTNAME
@NAMESPACE:registry=https://npm.HOSTNAME

Si l’isolation des sous-domaines est désactivée pour votre instance :

@NAMESPACE:registry=https://HOSTNAME/_registry/npm
@NAMESPACE:registry=https://HOSTNAME/_registry/npm

Utilisation du registre npm officiel

GitHub Packages vous permet d’accéder au registre npm officiel sur registry.npmjs.com, si votre GitHub Enterprise Server administrateur a activé cette fonctionnalité. Pour plus d’informations, consultez Connexion au registre npm officiel.