Connecter votre projet npm vers les flux Azure Artifacts
Article
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Azure Artifacts permet aux développeurs de publier et d’installer différents types de packages à partir de flux et de registres publics tels que npmjs.com. Pour vous authentifier auprès d’Azure Artifacts, il est nécessaire de configurer votre fichier de configuration npm.
Ce fichier contient des URL de flux et des informations d’identification utilisées par npm, offrant des options pour personnaliser le comportement de votre client npm, telles que la configuration de proxys, la définition des emplacements de package par défaut ou la configuration des flux de package privés. Le fichier .npmrc se trouve généralement dans le répertoire de base de l’utilisateur, mais peut également être créé au niveau du projet pour remplacer les paramètres par défaut. En modifiant le fichier .npmrc, les utilisateurs peuvent personnaliser leur expérience npm pour répondre à leurs exigences spécifiques.
Prérequis
Un organization Azure DevOps et un projet. Créez un organization ou un projet si ce n’est pas déjà fait.
Un flux Azure Artifacts. Créez un flux si vous n’en avez pas déjà.
Pour les bonnes pratiques, il est recommandé d’utiliser deux fichiers de configuration distincts. Le premier est utilisé pour l’authentification auprès d’Azure Artifacts, tandis que le deuxième est stocké localement et contient vos informations d’identification.
Pour configurer le deuxième fichier, placez-le simplement dans votre répertoire de base sur votre ordinateur de développement et incluez toutes vos informations d’identification de Registre. De cette façon, le client npm peut facilement accéder à vos informations d’identification pour l’authentification, ce qui vous permet de partager votre fichier de configuration tout en conservant vos informations d’identification sécurisées.
Les étapes suivantes vous guideront tout au long de la configuration du premier fichier de configuration :
Remarque
vsts-npm-auth n’est pas pris en charge dans Azure DevOps Server.
Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
Sélectionnez Artefacts, puis sélectionnez Connecter à alimenter.
Sélectionnez npm dans le volet de navigation gauche.
S’il s’agit de la première utilisation d’Azure Artifacts avec npm, sélectionnez Obtenir les outils et suivez les instructions pour installer les prérequis.
Suivez les instructions de la configuration de Project pour vous connecter à votre flux.
Ajoutez un fichier .npmrc dans le répertoire de votre projet, dans le même répertoire que votre fichier package.json, puis copiez l’extrait de code suivant dans celui-ci.
Copiez l’extrait de code suivant dans votre fichier npmrc au niveau de l’utilisateur :
Flux d’étendue de l’organisation :
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:username=[ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Flux dans l’étendue du projet :
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Sélectionnez votre collection, puis accédez à votre projet.
Sélectionnez Artefacts, puis sélectionnez Connecter à alimenter.
Sélectionnez npm dans le volet de navigation gauche.
S’il s’agit de la première utilisation d’Azure Artifacts avec npm, sélectionnez Obtenir les outils et suivez les instructions pour installer les prérequis.
Suivez les instructions de la configuration de Project pour configurer votre fichier de configuration.
Ajoutez un fichier .npmrc dans le répertoire de votre projet, dans le même répertoire que votre fichier package.json, puis copiez l’extrait de code suivant dans celui-ci.
Copiez l’extrait de code suivant dans votre fichier .npmrc au niveau de l’utilisateur :
Flux délimité à la collection :
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Flux dans l’étendue du projet :
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Sélectionnez votre collection, puis accédez à votre projet.
Sélectionnez Artefacts, puis sélectionnez Connecter à alimenter.
Sélectionnez npm dans le volet de navigation gauche.
S’il s’agit de la première utilisation d’Azure Artifacts avec npm, sélectionnez Obtenir les outils et suivez les instructions pour installer les prérequis.
Suivez les instructions de la configuration de Project pour configurer votre fichier de configuration.
Ajoutez un fichier .npmrc dans le répertoire de votre projet, dans le même répertoire que votre fichier package.json, puis copiez l’extrait de code suivant dans celui-ci.
Copiez l’extrait de code suivant dans votre fichier .npmrc au niveau de l’utilisateur :
Flux délimité à la collection :
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Flux dans l’étendue du projet :
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Remplacez les deux valeurs [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] dans votre fichier .npmrc utilisateur par votre jeton d’accès personnel à l’étape 3.
Sélectionnez votre collection, puis accédez à votre projet.
Sélectionnez Artefacts, puis sélectionnez Connecter à alimenter.
Une nouvelle fenêtre s'affiche. Dans le volet de navigation de gauche, sélectionnez npm.
Suivez les instructions pour configurer vos fichiers .npmrc de projet et d’utilisateur.
Conseil
L’utilisation de plusieurs registres dans les fichiers .npmrc est prise en charge avec des étendues et des sources amont.
Authentification de pipeline
Pour vous authentifier auprès de votre pipeline, Azure Artifacts recommande d’utiliser la tâche d’authentification npm.
Lorsque vous utilisez des exécuteurs de tâches tels que gulp ou Grunt, il est important d’inclure votre tâche d’authentification npm au début de votre pipeline. Cette action garantit que vos informations d’identification sont injectées dans le fichier .npmrc de votre projet et conservées tout au long de l’exécution du pipeline, ce qui permet d’accéder aux informations d’identification dans le fichier de configuration.
Accédez à votre projet, sélectionnez Pipelines, puis sélectionnez votre définition de pipeline.
Sélectionnez Modifier pour modifier votre pipeline.
Sélectionnez cette option + pour ajouter une nouvelle tâche à votre pipeline.
Accédez à votre projet, sélectionnez Builds pipelines>, puis sélectionnez votre définition de build.
Sélectionnez Modifier pour modifier votre pipeline de build.
Sélectionnez cette option + pour ajouter une nouvelle tâche à votre pipeline de build.
Recherchez la tâche d’authentification npm, puis sélectionnez Ajouter.
Sélectionnez votre fichier .npmrc , puis sélectionnez Enregistrer et file d’attente lorsque vous avez terminé.
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc ## Path to the npmrc file
customEndpoint: #Optional ## Comma-separated list of npm service connection names for registries from external organizations. For registries in your org, leave this blank
Remarque
Pour que votre pipeline accède à votre flux, vérifiez que le rôle de service de génération est défini sur Feed And Upstream Reader (Contributeur) dans vos paramètres de flux.
Remarque
Si votre organisation utilise un pare-feu ou un serveur proxy, veillez à autoriser les URL de domaine appropriées. Pour plus d’informations, consultez les adresses IP autorisées et les URL de domaine.
Résolution des problèmes
vsts-npm-auth n’est pas reconnu
Si vous rencontrez l’erreur suivante lors de l’exécution du projet :
Cmd: 'vsts-npm-auth' is not recognized as an internal or external command, operable program or batch file.
PowerShell : vsts-npm-auth : The term 'vsts-npm-auth' is not recognized as the name of a cmdlet, function, script file, or operable program.
Ensuite, il est probable que le dossier des modules npm n’a pas été ajouté à votre chemin d’accès. Pour résoudre ce problème, réexécutez la configuration de Node.js et veillez à sélectionner l’option Add to PATH .
Vous pouvez également ajouter le dossier des modules npm à votre chemin en modifiant la variable PATH à %APPDATA%\npm l’invite de commandes ou $env:APPDATA\npm dans PowerShell.
Impossible de s’authentifier
Si vous rencontrez une erreur E401 : code E401 npm ERR! Unable to authenticate. Exécutez la vsts-npm-auth commande avec l’indicateur -F pour réauthentifier.
vsts-npm-auth -config .npmrc -F
Réinitialiser vsts-npm-auth
Procédez comme suit pour réinitialiser vos informations d’identification vsts-npm-auth :
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez https://aka.ms/ContentUserFeedback.