Configurez et utilisez Yarn avecCodeArtifact - CodeArtifact

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurez et utilisez Yarn avecCodeArtifact

Après avoir créé un référentiel, vous pouvez utiliser le client Yarn pour gérer les packages npm.

Note

Yarn 1.Xlit et utilise les informations de votre fichier de configuration npm (.npmrc), tandis queYarn 2.Xne le fait pas. La configuration pourYarn 2.Xdoit être défini dans le fichier .yarnrc.yml.

Configurez Yarn 1.X avecaws codeartifact logincommande

PourYarn 1.X, vous pouvez configurer Yarn avecCodeArtifactà l'aide duaws codeartifact logincommande. Leloginla commande configurera votre fichier ~/.npmrc avec votreCodeArtifactinformations et informations d'identification des points de terminaison du référentiel. AvecYarn 1.X,yarnles commandes utilisent les informations de configuration du fichier ~/.npmrc.

Pour configurerYarn 1.Xavec la commande de connexion
  1. Si ce n'est pas déjà fait, configurez votreAWSinformations d'identification à utiliser avecAWS CLI, comme décrit dansDémarrage avec CodeArtifact.

  2. Pour exécuter leaws codeartifact logincommande réussie, npm doit être installé. VoirTéléchargement et installation de Node.js et de npmdans ledocumentation npmpour les instructions d'installation.

  3. Utilisez leaws codeartifact logincommande pour récupérerCodeArtifactinformations d'identification et configurez votre fichier ~/.npmrc.

    • Remplacermon_domaineavec votreCodeArtifactnom de domaine.

    • Remplacer11112222333avec leAWSID de compte du propriétaire du domaine. Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin d'inclure--domain-owner. Pour plus d'informations, veuillez consulter Domaines multi-comptes.

    • Remplacermy_repoavec votreCodeArtifactnom du référentiel.

    aws codeartifact login --tool npm --domain my_domain --domain-owner 111122223333 --repository my_repo

    LeloginLa commande apporte les modifications suivantes à votre fichier ~/.npmrc :

    • Ajoute un jeton d'autorisation après l'avoir récupéré depuisCodeArtifacten utilisant votreAWSinformations d'identification.

    • Définit le registre npm sur le référentiel spécifié par--repositoryoption.

    • Pour npm 6 et moins :Ajoute"always-auth=true"le jeton d'autorisation est donc envoyé pour chaque commande npm.

    La période d'autorisation par défaut après l'appelloginest de 12 heures, etlogindoit être appelé pour actualiser régulièrement le jeton. Pour plus d'informations sur le jeton d'autorisation créé aveclogincommande, voirJetons créés avec la login commande.

  4. Pour npm 7.X et 8.X, vous devez ajouteralways-auth=truedans votre fichier ~/.npmrc pour utiliser Yarn.

    1. Ouvrez votre fichier ~/.npmrc dans un éditeur de texte et ajoutezalways-auth=truesur une nouvelle ligne.

Vous pouvez utiliser leyarn config listcommande pour vérifier que Yarn utilise la bonne configuration. Après avoir exécuté la commande, vérifiez les valeurs duinfo npm configsection. Le contenu doit ressembler à l'extrait de code suivant.

info npm config { registry: 'https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/', '//my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken': 'eyJ2ZXI...', 'always-auth': true }

Configurez Yarn 2.X avecyarn config setcommande

La procédure suivante explique comment configurerYarn 2.Xen mettant à jour votre.yarnrc.ymlconfiguration à partir de la ligne de commande avecyarn config setcommande.

Pour mettre à jour leyarnrc.ymlconfiguration depuis la ligne de commande
  1. Si ce n'est pas déjà fait, configurez votreAWSinformations d'identification à utiliser avecAWS CLI, comme décrit dansDémarrage avec CodeArtifact.

  2. Utilisez leaws codeartifact get-repository-endpointcommande pour obtenir votreCodeArtifactpoint de terminaison du référentiel.

    • Remplacermon_domaineavec votreCodeArtifactnom de domaine.

    • Remplacer11112222333avec leAWSID de compte du propriétaire du domaine. Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin d'inclure--domain-owner. Pour plus d'informations, veuillez consulter Domaines multi-comptes.

    • Remplacermy_repoavec votreCodeArtifactnom du référentiel.

    aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm
  3. Mettez à jour lenpmRegistryServervaleur dans votre fichier .yarnrc.yml avec le point de terminaison de votre référentiel.

    yarn config set npmRegistryServer "https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"
  4. Récupérez unCodeArtifactjeton d'autorisation et stockez-le dans une variable d'environnement.

    Note

    La commande suivante concerne les machines macOS ou Linux. Pour plus d'informations sur la configuration des variables d'environnement sur un ordinateur Windows, voirTransmettre un jeton d'authentification à l'aide d'une variable d'environnement.

    • Remplacermon_domaineavec votreCodeArtifactnom de domaine.

    • Remplacer11112222333avec leAWSID de compte du propriétaire du domaine. Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin d'inclure--domain-owner. Pour plus d'informations, veuillez consulter Domaines multi-comptes.

    • Remplacermy_repoavec votreCodeArtifactnom du référentiel.

    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
  5. Utilisez leyarn config setcommande pour ajouter votreCodeArtifactjeton d'authentification pour votre fichier .yarnrc.yml. Remplacez l'URL de la commande suivante par l'URL du point de terminaison de votre référentiel à l'étape 2.

    yarn config set 'npmRegistries["https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"].npmAuthToken' "${CODEARTIFACT_AUTH_TOKEN}"
  6. Utilisez leyarn config setcommande pour définir la valeur denpmAlwaysAuthpourtrue. Remplacez l'URL de la commande suivante par l'URL du point de terminaison de votre référentiel à l'étape 2.

    yarn config set 'npmRegistries["https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"].npmAlwaysAuth' "true"

Après la configuration, votre fichier de configuration .yarnrc.yml doit avoir un contenu similaire à celui de l'extrait de code suivant.

npmRegistries: "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/": npmAlwaysAuth: true npmAuthToken: eyJ2ZXI... npmRegistryServer: "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/"

Vous pouvez également utiliser leyarn configcommande pour vérifier les valeurs denpmRegistriesetnpmRegistryServer.