Note
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 d’un package npm sur GitHub Packages, vous pourriez constater des problèmes de performances et des dépassements de délai d’expiration 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 auprès de GitHub Packages
Note
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 sur GitHub Packages ou l’API GitHub Enterprise Server. 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 l’étendue
read:packages
pour installer des packages associés à d’autres dépôts privés (auxquelsGITHUB_TOKEN
ne peut pas accéder).
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 en modifiant votre fichier ~/.npmrc spécifique à l’utilisateur pour y inclure votre personal access token (classic), ou en vous connectant à npm sur la ligne de commande en utilisant votre nom d’utilisateur et personal access token.
Pour vous authentifier en ajoutant votre personal access token (classic) à votre fichier ~/.npmrc, modifiez le fichier ~/.npmrc pour votre projet afin d'y 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éez un fichier ~/.npmrc s’il n’en existe pas.
Si l’isolation de sous-domaine est activée pour votre instance :
//npm.HOSTNAME//:_authToken=TOKEN
Si l’isolation de sous-domaine est désactivée pour votre instance :
//HOSTNAME/_registry/npm/:_authToken=TOKEN
Pour vous authentifier en vous connectant à npm, utilisez la commande npm login
, en remplaçant USERNAME par votre nom d’utilisateurGitHub, TOKEN par votre personal access token (classic) et PUBLIC-EMAIL-ADDRESS par 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 n’est pas votre registre de packages par défaut pour utiliser npm et que vous souhaitez utiliser la commande npm audit
, 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 est propriétaire du dépôt où le package est hébergé) lorsque vous vous authentifiez auprès de 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 de sous-domaine 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
Note
Les noms et les étendues des packages doivent utiliser seulement des lettres minuscules.
Par défaut, votre package est publié dans le dépôt GitHub que vous spécifiez dans le champ name
du fichier package.json
. Par exemple, vous allez publier un package nommé @my-org/test
sur le dépôt GitHub my-org/test
. Vous pouvez publier plusieurs packages sur le même dépôt GitHub en incluant un champ repository
dans le fichier package.json
. 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 en charge seulement 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 et le propriétaire du compte GitHub Packages pour permettre à GitHub Packages de savoir où router les demandes de package. L’utilisation d’un fichier .npmrc empêche d’autres développeurs de publier accidentellement le package sur npmjs.org au lieu de le faire sur GitHub Packages.
- Authentifiez-vous sur GitHub Packages. Pour plus d’informations, consultez « Authentification auprès de GitHub Packages ».
- 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é. RemplacezNAMESPACE
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
-
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 ».
-
Vérifiez le nom de votre package dans le
package.json
de votre projet. Le champname
doit contenir l’étendue et le nom du package. Par exemple, si votre package est appelé « test » et que vous le publiez sur l'organisation GitHub « My-org », le champname
de votrepackage.json
doit être@my-org/test
. -
Vérifiez le champ
repository
dans le fichier package.json de votre projet. Le champrepository
doit correspondre à l’URL de votre référentiel GitHub. Par exemple, si l’URL de votre référentiel estgithub.com/my-org/test
, le champ du référentiel doit êtrehttps://github.com/my-org/test.git
. -
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.
- Modifiez le fichier
package.json
pour votre package et incluez-y une entréepublishConfig
.
Si l’isolation de sous-domaine est activée pour votre instance :
"publishConfig": {
"registry": "https://npm. HOSTNAME/"
},
Si l’isolation de sous-domaine est désactivée pour votre instance :
"publishConfig": {
"registry": "https://HOSTNAME/_registry/npm/"
},
-
Vérifiez le champ
repository
dans le fichier package.json de votre projet. Le champrepository
doit correspondre à l’URL de votre référentiel GitHub. Par exemple, si l’URL de votre référentiel estgithub.com/my-org/test
, le champ du référentiel doit êtrehttps://github.com/my-org/test.git
. -
Publiez le package :
npm publish
Publication de plusieurs packages sur le même référentiel
Pour publier plusieurs packages sur le même dépôt, vous pouvez inclure l’URL du dépôt GitHub dans le champ repository
du fichier package.json
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 garantir que l’URL du dépôt est correcte, remplacez REPOSITORY
par le nom du dépôt contenant le package que vous voulez publier, et OWNER
par le nom du compte personnel ou de l’organisation sur GitHub qui est propriétaire du dépôt.
GitHub Packages établira une correspondance avec le dépôt en fonction de l’URL au lieu de se baser sur le nom du package.
"repository":"https://HOSTNAME/OWNER/REPOSITORY",
Installation d’un package
Vous pouvez installer des packages depuis GitHub Packages en ajoutant les packages en tant que dépendances dans le fichier package.json
pour 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 aussi ajouter le fichier .npmrc à votre projet afin que toutes les demandes d’installation de packages passent par GitHub Packages. Quand vous routez toutes les demandes de package via GitHub Packages, vous pouvez utiliser à la fois des packages délimités et des packages non délimités provenant de npmjs.org. Pour plus d’informations, consultez « npm-scope » dans la documentation npm.
- Authentifiez-vous sur GitHub Packages. Pour plus d’informations, consultez « Authentification auprès de GitHub Packages ».
- 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é. RemplacezNAMESPACE
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
-
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 ».
-
Configurez
package.json
dans votre projet afin d’utiliser le package que vous installez. Pour ajouter vos dépendances de package au fichierpackage.json
pour GitHub Packages, spécifiez le nom du package entièrement délimité, comme@my-org/server
. Pour les packages provenant de npmjs.com, spécifiez le nom complet, comme@babel/core
oulodash
. RemplacezORGANIZATION_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" } }
-
Installez le package.
npm install
Installation de packages provenant d’autres organisations
Par défaut, vous pouvez seulement utiliser des packages GitHub Packages provenant d’une seule organisation. Si vous souhaitez acheminer les demandes de package vers plusieurs organisations et utilisateurs, vous pouvez ajouter des lignes supplémentaires à votre fichier .npmrc, en remplaçant HOSTNAME
par le nom d'hôte de votre instance GitHub Enterprise Server et NAMESPACE
par le nom du compte personnel ou de l'organisation qui est propriétaire du dépôt 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 de sous-domaine 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 administrateur GitHub Enterprise Server a activé cette fonctionnalité. Pour plus d’informations, consultez Connexion au registre npm officiel.