

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.

# Utilisation CodeArtifact avec npm
<a name="using-npm"></a>

Ces rubriques décrivent comment utiliser npm, le gestionnaire de packages Node.js, avec CodeArtifact.

**Note**  
CodeArtifact supports `node v4.9.1` et plus tard `npm v5.0.0` et plus tard.

**Topics**
+ [Configurer et utiliser npm](npm-auth.md)
+ [Configurer et utiliser Yarn](npm-yarn.md)
+ [support des commandes npm](npm-commands.md)
+ [gestion des balises npm](npm-tags.md)
+ [Support pour les gestionnaires de paquets compatibles npm](npm-other-clients.md)

# Configurer et utiliser npm avec CodeArtifact
<a name="npm-auth"></a>

Après avoir créé un référentiel dans CodeArtifact, vous pouvez utiliser le client npm pour installer et publier des packages. La méthode recommandée pour configurer npm avec le point de terminaison et le jeton d'autorisation de votre référentiel consiste à utiliser la `aws codeartifact login` commande. Vous pouvez également configurer npm manuellement.

**Contents**
+ [Configuration de npm avec la commande login](#configure-npm-login-command)
+ [Configuration de npm sans utiliser la commande de connexion](#configuring-npm-without-using-the-login-command)
+ [Exécution de commandes npm](#running-npm-commands)
+ [Vérification de l'authentification et de l'autorisation npm](#verifying-npm-authentication-and-authorization)
+ [Revenir au registre npm par défaut](#revert-default-npm-registry)
+ [Résolution des problèmes d'installation lents avec npm 8.x ou supérieur](#troubleshooting-slow-npm-install)

## Configuration de npm avec la commande login
<a name="configure-npm-login-command"></a>

Utilisez la `aws codeartifact login` commande pour récupérer les informations d'identification à utiliser avec npm.

**Note**  
Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin de l'inclure`--domain-owner`. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).

**Important**  
Si vous utilisez npm 10.x ou version ultérieure, vous devez utiliser la AWS CLI version 2.9.5 ou plus récente pour exécuter correctement la commande. `aws codeartifact login`

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

Cette commande apporte les modifications suivantes à votre fichier \$1/.npmrc :
+ Ajoute un jeton d'autorisation après l'avoir récupéré à l' CodeArtifact aide de vos AWS informations d'identification.
+ Définit le registre npm sur le référentiel spécifié par l'`--repository`option.
+ **Pour npm 6 et versions antérieures :** ajoute `"always-auth=true"` afin que le jeton d'autorisation soit envoyé pour chaque commande npm.

La période d'autorisation par défaut après l'appel `login` est de 12 heures et `login` doit être appelée pour actualiser régulièrement le jeton. Pour plus d'informations sur le jeton d'autorisation créé avec la `login` commande, consultez[Jetons créés avec la `login` commande](tokens-authentication.md#auth-token-login).

## Configuration de npm sans utiliser la commande de connexion
<a name="configuring-npm-without-using-the-login-command"></a>

Vous pouvez configurer npm avec votre CodeArtifact référentiel sans la `aws codeartifact login` commande en mettant à jour manuellement la configuration npm.

**Pour configurer npm sans utiliser la commande de connexion**

1. Dans une ligne de commande, récupérez un jeton CodeArtifact d'autorisation et stockez-le dans une variable d'environnement. npm utilisera ce jeton pour s'authentifier auprès de votre dépôt. CodeArtifact 
**Note**  
La commande suivante est destinée aux machines macOS ou Linux. Pour plus d'informations sur la configuration des variables d'environnement sur un ordinateur Windows, consultez[Transmettre un jeton d'authentification à l'aide d'une variable d'environnement](tokens-authentication.md#env-var).

   ```
   CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
   ```

1. Obtenez le point de terminaison de votre CodeArtifact dépôt en exécutant la commande suivante. Le point de terminaison de votre référentiel est utilisé pour pointer npm vers votre référentiel afin d'installer ou de publier des packages.
   + *my\$1domain*Remplacez-le par votre nom de CodeArtifact domaine.
   + Remplacez *111122223333* par le numéro de AWS 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 de l'inclure`--domain-owner`. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).
   + *my\$1repo*Remplacez-le par le nom de votre CodeArtifact dépôt.

   ```
   aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm
   ```

   L'URL suivante est un exemple de point de terminaison du référentiel.

   ```
   https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/
   ```
**Important**  
L'URL du registre doit se terminer par une barre oblique (/). Dans le cas contraire, vous ne pourrez pas vous connecter au référentiel.

1. Utilisez la `npm config set` commande pour définir le registre sur votre CodeArtifact référentiel. Remplacez l'URL par l'URL du point de terminaison du référentiel de l'étape précédente.

   ```
   npm config set registry=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/
   ```
**Note**  
Pour utiliser un point de terminaison à double pile, utilisez le `codeartifact.region.on.aws` point de terminaison.

1. Utilisez la `npm config set` commande pour ajouter votre jeton d'autorisation à votre configuration npm.

   ```
   npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:_authToken=$CODEARTIFACT_AUTH_TOKEN
   ```

   **Pour npm 6 ou inférieur :** pour que npm transmette toujours le jeton d'authentification CodeArtifact, même pour les `GET` demandes, définissez la variable de `always-auth` configuration avec. `npm config set` 

   ```
   npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:always-auth=true
   ```

**Exemple de fichier de configuration npm () `.npmrc`**

 Voici un exemple de `.npmrc` fichier après avoir suivi les instructions précédentes pour définir le point de terminaison CodeArtifact du registre, ajouter un jeton d'authentification et configurer`always-auth`. 

```
registry=https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my-cli-repo/
//my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken=eyJ2ZX...
//my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:always-auth=true
```

## Exécution de commandes npm
<a name="running-npm-commands"></a>

Après avoir configuré le client npm, vous pouvez exécuter les commandes npm. En supposant qu'un package soit présent dans votre dépôt ou dans l'un de ses référentiels en amont, vous pouvez l'installer avec`npm install`. Par exemple, utilisez ce qui suit pour installer le `lodash` package.

```
npm install lodash
```

Utilisez la commande suivante pour publier un nouveau package npm dans un CodeArtifact référentiel.

```
npm publish
```

Pour plus d'informations sur la création de packages npm, voir [Création de modules Node.js](https://docs.npmjs.com/getting-started/creating-node-modules) sur le site Web de documentation de npm. Pour une liste des commandes npm prises en charge par CodeArtifact, consultez [npm Command Support](npm-commands.md). 

## Vérification de l'authentification et de l'autorisation npm
<a name="verifying-npm-authentication-and-authorization"></a>

L'invocation de la `npm ping` commande permet de vérifier les points suivants :
+ Vous avez correctement configuré vos informations d'identification afin de pouvoir vous authentifier auprès d'un CodeArtifact référentiel.
+ La configuration d'autorisation vous accorde l'`ReadFromRepository`autorisation.

Le résultat d'un appel réussi de `npm ping` ressemble à ce qui suit.

```
$ npm -d ping
npm info it worked if it ends with ok
npm info using npm@6.4.1
npm info using node@v9.5.0
npm info attempt registry request try #1 at 4:30:59 PM
npm http request GET https://<domain>.d.codeartifact.us-west-2.amazonaws.com/npm/shared/-/ping?write=true
npm http 200 https:///npm/shared/-/ping?write=true
Ping success: {}
npm timing npm Completed in 716ms
npm info ok
```

L'`-d`option oblige npm à imprimer des informations de débogage supplémentaires, y compris l'URL du référentiel. Ces informations permettent de confirmer facilement que npm est configuré pour utiliser le référentiel que vous attendez.

## Revenir au registre npm par défaut
<a name="revert-default-npm-registry"></a>

La configuration de npm with CodeArtifact définit le registre npm sur le référentiel spécifié CodeArtifact . Vous pouvez exécuter la commande suivante pour rétablir le registre npm sur son registre par défaut lorsque vous avez terminé de vous connecter à CodeArtifact.

```
npm config set registry https://registry.npmjs.com/
```

## Résolution des problèmes d'installation lents avec npm 8.x ou supérieur
<a name="troubleshooting-slow-npm-install"></a>

Il existe un problème connu dans les versions 8.x et supérieures de npm : si une demande est envoyée à un référentiel de packages et que le référentiel redirige le client vers Amazon S3 au lieu de diffuser directement les actifs, le client npm peut se bloquer pendant plusieurs minutes par dépendance. 

Les CodeArtifact référentiels étant conçus pour toujours rediriger la demande vers Amazon S3, ce problème se produit parfois, ce qui entraîne de longs délais de construction en raison des longs délais d'installation de npm. Les instances de ce comportement se présenteront sous la forme d'une barre de progression affichée pendant plusieurs minutes.

Pour éviter ce problème, utilisez les `progress=false` drapeaux `--no-progress` or avec les commandes `npm` cli, comme indiqué dans l'exemple suivant.

```
npm install lodash --no-progress
```

# Configurer et utiliser Yarn avec CodeArtifact
<a name="npm-yarn"></a>

Après avoir créé un dépôt, vous pouvez utiliser le client Yarn pour gérer les packages npm.

**Note**  
`Yarn 1.X`lit et utilise les informations de votre fichier de configuration npm (.npmrc), alors que ce n'est pas le cas. `Yarn 2.X` La configuration pour `Yarn 2.X` doit être définie dans le fichier .yarnrc.yml.

**Contents**
+ [Configurez Yarn 1.X avec la commande `aws codeartifact login`](#npm-yarn-configure-login)
+ [Configurez Yarn 2.X avec la commande `yarn config set`](#npm-yarn-configure-yarn-command)

## Configurez Yarn 1.X avec la commande `aws codeartifact login`
<a name="npm-yarn-configure-login"></a>

Car`Yarn 1.X`, vous pouvez configurer Yarn à CodeArtifact l'aide de la `aws codeartifact login` commande. La `login` commande configurera votre fichier \$1/.npmrc avec les informations et les informations d'identification du point de terminaison de votre CodeArtifact référentiel. Avec`Yarn 1.X`, `yarn` les commandes utilisent les informations de configuration du fichier \$1/.npmrc.

**Pour configurer à l'`Yarn 1.X`aide de la commande de connexion**

1. Si vous ne l'avez pas déjà fait, configurez vos AWS informations d'identification pour les utiliser avec AWS CLI, comme décrit dans[Commencer avec CodeArtifact](getting-started.md).

1. Pour exécuter correctement la `aws codeartifact login` commande, npm doit être installé. Voir [Téléchargement et installation de Node.js et de npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm/) dans la *documentation de npm pour les instructions* d'installation.

1. Utilisez la `aws codeartifact login` commande pour récupérer les informations d' CodeArtifact identification et configurer votre fichier \$1/.npmrc.
   + *my\$1domain*Remplacez-le par votre nom de CodeArtifact domaine.
   + Remplacez *111122223333* par le numéro de AWS 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 de l'inclure`--domain-owner`. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).
   + *my\$1repo*Remplacez-le par le nom de votre CodeArtifact dépôt.

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

   La `login` commande apporte les modifications suivantes à votre fichier \$1/.npmrc :
   + Ajoute un jeton d'autorisation après l'avoir récupéré à l' CodeArtifact aide de vos AWS informations d'identification.
   + Définit le registre npm sur le référentiel spécifié par l'`--repository`option.
   + **Pour npm 6 et versions antérieures : ajoute le** jeton d'autorisation `"always-auth=true"` afin que le jeton d'autorisation soit envoyé pour chaque commande npm.

   La période d'autorisation par défaut après `login` un appel est de 12 heures et `login` doit être appelée pour actualiser régulièrement le jeton. Pour plus d'informations sur le jeton d'autorisation créé avec la `login` commande, consultez[Jetons créés avec la `login` commande](tokens-authentication.md#auth-token-login).

1. **Pour npm 7.X et 8.X**, vous devez les ajouter `always-auth=true` à votre fichier \$1/.npmrc pour utiliser Yarn.

   1. Ouvrez votre fichier \$1/.npmrc dans un éditeur de texte et ajoutez-y `always-auth=true` une nouvelle ligne.

Vous pouvez utiliser la `yarn config list` commande pour vérifier que Yarn utilise la bonne configuration. Après avoir exécuté la commande, vérifiez les valeurs indiquées dans la `info npm config` section. Le contenu doit ressembler à l'extrait 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 avec la commande `yarn config set`
<a name="npm-yarn-configure-yarn-command"></a>

La procédure suivante explique comment configurer `Yarn 2.X` en mettant à jour votre `.yarnrc.yml` configuration à partir de la ligne de commande avec la `yarn config set` commande.

**Pour mettre à jour la `yarnrc.yml` configuration depuis la ligne de commande**

1. Si vous ne l'avez pas déjà fait, configurez vos AWS informations d'identification pour les utiliser avec AWS CLI, comme décrit dans[Commencer avec CodeArtifact](getting-started.md).

1. Utilisez la `aws codeartifact get-repository-endpoint` commande pour obtenir le point de terminaison de votre CodeArtifact dépôt.
   + *my\$1domain*Remplacez-le par votre nom de CodeArtifact domaine.
   + Remplacez *111122223333* par le numéro de AWS 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 de l'inclure`--domain-owner`. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).
   + *my\$1repo*Remplacez-le par le nom de votre CodeArtifact dépôt.

   ```
   aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm
   ```

1. Mettez à jour la `npmRegistryServer` valeur de 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/"
   ```

1. Récupérez un jeton CodeArtifact d'autorisation et stockez-le dans une variable d'environnement.
**Note**  
La commande suivante est destinée aux machines macOS ou Linux. Pour plus d'informations sur la configuration des variables d'environnement sur un ordinateur Windows, consultez[Transmettre un jeton d'authentification à l'aide d'une variable d'environnement](tokens-authentication.md#env-var).
   + *my\$1domain*Remplacez-le par votre nom de CodeArtifact domaine.
   + Remplacez *111122223333* par le numéro de AWS 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 de l'inclure`--domain-owner`. Pour de plus amples informations, veuillez consulter [Domaines multi-comptes](domain-overview.md#domain-overview-cross-account).
   + *my\$1repo*Remplacez-le par le nom de votre CodeArtifact dépôt.

   ```
   export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
   ```

1. Utilisez la `yarn config set` commande pour ajouter votre jeton CodeArtifact d'authentification à 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}"
   ```

1. Utilisez la `yarn config set` commande pour définir la valeur de `npmAlwaysAuth` à`true`. 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 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 la `yarn config` commande pour vérifier les valeurs de `npmRegistries` et`npmRegistryServer`.

# support des commandes npm
<a name="npm-commands"></a>

Les sections suivantes résument les commandes npm prises en charge par les CodeArtifact référentiels, en plus des commandes spécifiques qui ne sont pas prises en charge.

**Contents**
+ [Commandes prises en charge qui interagissent avec un référentiel](#supported-commands-that-interact-with-a-repository)
+ [Commandes côté client prises en charge](#supported-client-side-commands)
+ [Commandes non prises en charge](#unsupported-commands)

## Commandes prises en charge qui interagissent avec un référentiel
<a name="supported-commands-that-interact-with-a-repository"></a>

Cette section répertorie les commandes npm dans lesquelles le client npm envoie une ou plusieurs requêtes au registre avec lequel il a été configuré (par exemple, avec`npm config set registry`). Il a été vérifié que ces commandes fonctionnent correctement lorsqu'elles sont invoquées dans un CodeArtifact dépôt.


****  

| Commande | Description | 
| --- | --- | 
|   [punaises](https://docs.npmjs.com/cli/bugs)   |  Essaie de deviner l'emplacement de l'URL de suivi des bogues d'un package, puis essaie de l'ouvrir.  | 
|   [ci](https://docs.npmjs.com/cli/ci)   |  Installe un projet sur une table rase.  | 
|   [déprécier](https://docs.npmjs.com/cli/deprecate)   |  Déprécie une version d'un package.  | 
|   [dist-tag](https://docs.npmjs.com/cli/dist-tag)   |  Modifie les balises de distribution des packages.  | 
|   [documents](https://docs.npmjs.com/cli/docs)   |  Essaie de deviner l'emplacement de l'URL de documentation d'un package, puis essaie de l'ouvrir à l'aide du paramètre de `--browser` configuration.  | 
|   [médecin](https://docs.npmjs.com/cli/doctor)   |  Exécute un ensemble de vérifications pour s'assurer que votre installation npm dispose de ce dont elle a besoin pour gérer vos JavaScript packages.  | 
|   [installer](https://docs.npmjs.com/cli/install)   |  Installe un package.  | 
|   [install-ci-test](https://docs.npmjs.com/cli/install-ci-test)   |  Installe un projet sur une table rase et exécute des tests. Pseudonyme :`npm cit`. Cette commande exécute un et immédiatement `npm ci` suivis d'un`npm test`.  | 
|   [installation-test](https://docs.npmjs.com/cli/install-test)   |  Installe le package et exécute des tests. Fonctionne et est `npm install` suivi immédiatement par un`npm test`.  | 
|   [désuet](https://docs.npmjs.com/cli/outdated)   |  Vérifie le registre configuré pour voir si les packages installés sont actuellement obsolètes.  | 
|   [ping](https://docs.npmjs.com/cli/ping)   |  Envoie une requête ping au registre npm configuré ou donné et vérifie l'authentification.  | 
|   [publier](https://docs.npmjs.com/cli/publish)   |  Publie une version du package dans le registre.  | 
|   [update](https://docs.npmjs.com/cli/update)   |  Devine l'emplacement de l'URL du dépôt d'un package, puis essaie de l'ouvrir à l'aide du paramètre de `--browser` configuration.  | 
|   [vue](https://docs.npmjs.com/cli/view)   |  Affiche les métadonnées du package. Peut être utilisé pour imprimer les propriétés des métadonnées.  | 

## Commandes côté client prises en charge
<a name="supported-client-side-commands"></a>

Ces commandes ne nécessitent aucune interaction directe avec un dépôt, il n'est donc CodeArtifact pas nécessaire de faire quoi que ce soit pour les prendre en charge.


****  

| Commande | Description | 
| --- | --- | 
|   [build](https://docs.npmjs.com/cli/v6/commands/npm-build)   |  Construit un package.  | 
|   [cache](https://docs.npmjs.com/cli/cache)   |  Manipule le cache des packages.  | 
|   [achèvement](https://docs.npmjs.com/cli/completion)   |  Permet de compléter les onglets dans toutes les commandes npm.  | 
|   [configuration](https://docs.npmjs.com/cli/config)   |  Met à jour le contenu des `npmrc` fichiers utilisateur et globaux.  | 
|   [dédupliquez](https://docs.npmjs.com/cli/dedupe)   |  Effectue une recherche dans l'arborescence locale des packages et tente de simplifier la structure en déplaçant les dépendances plus haut dans l'arborescence, où elles peuvent être partagées plus efficacement par plusieurs packages dépendants.  | 
|   [modifier](https://docs.npmjs.com/cli/edit)   |  Modifie un package installé. Sélectionne une dépendance dans le répertoire de travail actuel et ouvre le dossier du package dans l'éditeur par défaut.  | 
|   [explorez](https://docs.npmjs.com/cli/explore)   |  Parcourt un package installé. Génère un sous-shell dans le répertoire du package installé spécifié. Si une commande est spécifiée, elle est exécutée dans le sous-shell, qui s'arrête alors immédiatement.  | 
|   [help](https://docs.npmjs.com/cli/help)   |  Obtient de l'aide sur npm.  | 
|   [aide-recherche](https://docs.npmjs.com/cli/help-search)   |  Recherche la documentation d'aide de npm.  | 
|   [initialisation](https://docs.npmjs.com/cli/init)   |  Crée un `package.json` fichier.  | 
|   [lien](https://docs.npmjs.com/cli/link)   |  Établit des liens symboliques vers un dossier de package.  | 
|   [ls](https://docs.npmjs.com/cli/ls)   |  Répertorie les packages installés.  | 
|   [emballer](https://docs.npmjs.com/cli/pack)   |  Crée une archive tar à partir d'un package.  | 
|   [prefix](https://docs.npmjs.com/cli/prefix)   |  Affiche le préfixe. Il s'agit du répertoire parent le plus proche à contenir un `package.json` fichier, sauf indication contraire`-g`.  | 
|   [pruneau](https://docs.npmjs.com/cli/prune)   |  Supprime les packages qui ne figurent pas dans la liste des dépendances du package parent.  | 
|   [reconstruire](https://docs.npmjs.com/cli/rebuild)   |  Exécute la `npm build` commande sur les dossiers correspondants.  | 
|   [redémarrer](https://docs.npmjs.com/cli/restart)   |  Exécute les scripts d'arrêt, de redémarrage et de démarrage d'un package ainsi que les pré-scripts et post-scripts associés.  | 
|   [racine](https://docs.npmjs.com/cli/root)   |  Imprime le `node_modules` dossier effectif en sortie standard.  | 
|   [exécuter un script](https://docs.npmjs.com/cli/run-script)   |  Exécute des scripts de package arbitraires.  | 
|   [shrinkwrap](https://docs.npmjs.com/cli/shrinkwrap)   |  Verrouille les versions de dépendance pour publication.  | 
|   [désinstaller](https://docs.npmjs.com/cli/uninstall)   |  Désinstalle un package.  | 

## Commandes non prises en charge
<a name="unsupported-commands"></a>

Ces commandes npm ne sont pas prises en charge par les CodeArtifact référentiels.


****  

| Commande | Description | Remarques | 
| --- | --- | --- | 
|   [accès](https://docs.npmjs.com/cli/access)   |  Définit le niveau d'accès aux packages publiés.  |  CodeArtifact utilise un modèle d'autorisation différent de celui du référentiel public npmjs.  | 
|   [ajouter un utilisateur](https://docs.npmjs.com/cli/adduser)   |  Ajoute un compte utilisateur au registre  |  CodeArtifact utilise un modèle utilisateur différent de celui du dépôt public npmjs.  | 
|   [audit](https://docs.npmjs.com/cli/audit)   |  Exécute un audit de sécurité.  |  CodeArtifact ne vend actuellement pas de données relatives aux failles de sécurité.  | 
|   [crochet](https://docs.npmjs.com/cli/hook)   |  Gère les hooks npm, y compris l'ajout, la suppression, la liste et la mise à jour.  |  CodeArtifact ne prend actuellement en charge aucun type de mécanisme de notification des modifications.  | 
|   [login](https://docs.npmjs.com/cli-commands/adduser.html)   |  Authentifie un utilisateur. Ceci est un alias pour `npm adduser`.   |  CodeArtifact utilise un modèle d'authentification différent de celui du dépôt public npmjs. Pour plus d'informations, voir [Authentification avec npm.](npm-auth.md)  | 
|   [logout](https://docs.npmjs.com/cli/logout)   |  Se déconnecte du registre.  |  CodeArtifact utilise un modèle d'authentification différent de celui du dépôt public npmjs. Il n'est pas possible de se déconnecter d'un CodeArtifact référentiel, mais les jetons d'authentification expirent après leur date d'expiration configurable. La durée du jeton par défaut est de 12 heures.   | 
|   [propriétaire](https://docs.npmjs.com/cli/owner)   |  Gère les propriétaires de packages.  |  CodeArtifact utilise un modèle d'autorisations différent de celui du référentiel public npmjs.  | 
|   [profile](https://docs.npmjs.com/cli/profile)   |  Modifie les paramètres de votre profil de registre.  |  CodeArtifact utilise un modèle utilisateur différent de celui du dépôt public npmjs.  | 
|   [search](https://docs.npmjs.com/cli/search)   |  Recherche dans le registre les packages correspondant aux termes de recherche.  |  CodeArtifact prend en charge une fonctionnalité de recherche limitée avec la [commande list-packages](list-packages.md).  | 
|   [étoile](https://docs.npmjs.com/cli/star)   |  Marque vos packages préférés.  |  CodeArtifact ne prend actuellement en charge aucun type de mécanisme de favoris.  | 
|   [étoiles](https://docs.npmjs.com/cli/stars)   |  Affiche les packages marqués comme favoris.  |  CodeArtifact ne prend actuellement en charge aucun type de mécanisme de favoris.  | 
|   [équipe](https://docs.npmjs.com/cli/team)   |  Gère les équipes de l'organisation et les adhésions aux équipes.  |  CodeArtifact utilise un modèle d'adhésion d'utilisateurs et de groupes différent de celui du référentiel public npmjs. Pour plus d'informations, consultez la section [Identités (utilisateurs, groupes et rôles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) dans le *guide de l'utilisateur IAM*.  | 
|   [https://docs.npmjs.com/cli/token](https://docs.npmjs.com/cli/token)token   |  Gère vos jetons d'authentification.  |  CodeArtifact utilise un modèle différent pour obtenir des jetons d'authentification. Pour plus d'informations, voir [Authentification avec npm.](npm-auth.md)  | 
|   [dépublier](https://docs.npmjs.com/cli/unpublish)   |  Supprime un package du registre.  |  CodeArtifact ne prend pas en charge la suppression d'une version de package d'un référentiel à l'aide du client npm. Vous pouvez utiliser la commande [delete-package-version](delete-package.md).  | 
|   [whoami](https://docs.npmjs.com/cli/whoami)   |  Affiche le nom d'utilisateur npm.  |  CodeArtifact utilise un modèle utilisateur différent de celui du dépôt public npmjs.  | 

# gestion des balises npm
<a name="npm-tags"></a>

 Les registres npm prennent en charge les *balises*, qui sont des alias de chaîne pour les versions de packages. Vous pouvez utiliser des balises pour fournir un alias au lieu de numéros de version. Par exemple, vous pouvez avoir un projet comportant plusieurs flux de développement et utiliser une balise différente (par exemple`stable`,`beta`,`dev`,`canary`) pour chaque flux. Pour plus d'informations, consultez [dist-tag sur le site Web](https://docs.npmjs.com/cli/dist-tag) de npm. 

 Par défaut, npm utilise la `latest` balise pour identifier la version actuelle d'un package. `npm install pkg`(sans `@version` ou `@tag` spécificateur) installe la dernière balise. Généralement, les projets utilisent la dernière balise uniquement pour les versions stables. D'autres balises sont utilisées pour les versions instables ou préliminaires. 

## Modifier les balises avec le client npm
<a name="editing-tags-with-the-npm-client"></a>

 Les trois `npm dist-tag` commandes (`add`,`rm`, et`ls`) fonctionnent de la même manière dans CodeArtifact les référentiels que dans le registre [npm par défaut](https://registry.npmjs.com/).

## les balises npm et l'API CopyPackageVersions
<a name="tags-and-cpv"></a>

Lorsque vous utilisez l'`CopyPackageVersions`API pour copier une version de package npm, toutes les balises aliasant cette version sont copiées dans le référentiel de destination. Lorsqu'une version copiée possède une balise également présente dans la destination, l'opération de copie définit la valeur de la balise dans le référentiel de destination pour qu'elle corresponde à la valeur du référentiel source.

Par exemple, supposons que le référentiel S et le référentiel D contiennent une seule version du `web-helper` package avec le dernier ensemble de balises, comme indiqué dans ce tableau.


****  

| Référentiel. | Nom du package | Étiquettes du package | 
| --- | --- | --- | 
|   S  |  `web-helper`  |   *dernier* (alias pour la version 1.0.1)  | 
|  D  |  `web-helper`  |   *dernier* (alias pour la version 1.0.0)  | 

 `CopyPackageVersions`est invoqué pour copier la version `web-helper` 1.0.1 de S vers D. Une fois l'opération terminée, le `latest` tag activé `web-helper` dans le dépôt D prend un alias 1.0.1, et non 1.0.0.

Si vous devez modifier les balises après la copie, utilisez la `npm dist-tag` commande pour modifier les balises directement dans le référentiel de destination. Pour plus d'informations sur l'`CopyPackageVersions`API, consultez [Copier des packages entre des référentiels.](copy-package.md)

## balises npm et référentiels en amont
<a name="tags-and-upstreams"></a>

Lorsque npm demande les balises d'un package et que les versions de ce package sont également présentes dans un référentiel en amont, CodeArtifact fusionne les balises avant de les renvoyer au client. Par exemple, un référentiel nommé R possède un référentiel en amont nommé U. Le tableau suivant indique les balises d'un package nommé `web-helper` présent dans les deux référentiels.


****  

| Référentiel. | Nom du package | Étiquettes du package | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *dernier* (alias pour la version 1.0.0)  | 
|  U  |  `web-helper`  |   *alpha* (alias pour la version 1.0.1)  | 

Dans ce cas, lorsque le client npm récupère les balises du `web-helper` package dans le référentiel R, il reçoit à la fois les balises les *plus récentes* et les balises *alpha*. Les versions vers lesquelles pointent les balises ne changeront pas.

Lorsque la même balise est présente sur le même package dans le référentiel en amont et en aval, CodeArtifact utilise la balise présente dans le référentiel *en amont*. Supposons, par exemple, que les balises de *webhelper* aient été modifiées pour ressembler à ce qui suit.


****  

| Référentiel. | Nom du package | Étiquettes du package | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *dernier* (alias pour la version 1.0.0)  | 
|  U  |  `web-helper`  |   *dernier* (alias pour la version 1.0.1)  | 

Dans ce cas, lorsque le client npm récupère les balises du package *web-helper à partir* du référentiel R, la *dernière* balise alias la version *1.0.1* car c'est ce qui se trouve dans le référentiel en amont. Cela permet de consommer facilement de nouvelles versions de package dans un référentiel en amont qui ne sont pas encore présentes dans un référentiel en aval lors de l'exécution`npm update`.

L'utilisation de la balise dans le référentiel en amont peut s'avérer problématique lors de la publication de nouvelles versions d'un package dans un référentiel en aval. Par exemple, supposons que la dernière balise du package *web-helper soit* la même en R et en U.


****  

| Référentiel. | Nom du package | Étiquettes du package | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *dernier* (alias pour la version 1.0.1)  | 
|  U  |  `web-helper`  |   *dernier* (alias pour la version 1.0.1)  | 

Lorsque la version 1.0.2 est publiée sur R, npm met à jour la *dernière balise vers* 1.0.2.


****  

| Référentiel. | Nom du package | Étiquettes du package | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *dernier* (alias pour la version 1.0.2)  | 
|  U  |  `web-helper`  |   *dernier* (alias pour la version 1.0.1)  | 

Cependant, le client npm ne voit jamais cette valeur de balise car la valeur de la *dernière version* de U est 1.0.1. L'exécution `npm install` sur le référentiel R immédiatement après la publication de la version 1.0.2 installe la version 1.0.1 au lieu de la version qui vient d'être publiée. Pour installer la dernière version publiée, vous devez spécifier la version exacte du package, comme suit.

```
npm install web-helper@1.0.2
```

# Support pour les gestionnaires de paquets compatibles npm
<a name="npm-other-clients"></a>

Ces autres gestionnaires de packages sont compatibles CodeArtifact et fonctionnent avec le format de package npm et le protocole npm wire : 
+  [gestionnaire de paquets pnpm](https://pnpm.js.org). La dernière version dont la compatibilité a été confirmée CodeArtifact est la 3.3.4, publiée le 18 mai 2019. 
+  [Gestionnaire de packages Yarn](https://yarnpkg.com/). La dernière version dont la compatibilité a été confirmée CodeArtifact est la 1.21.1, publiée le 11 décembre 2019. 

**Note**  
Nous vous recommandons d'utiliser Yarn 2.x avec CodeArtifact. Yarn 1.x ne propose pas de nouvelles tentatives HTTP, ce qui signifie qu'il est plus vulnérable aux pannes de service intermittentes qui entraînent des codes d'état ou des erreurs de niveau 500. Il n'y a aucun moyen de configurer une stratégie de nouvelle tentative différente pour Yarn 1.x, mais cela a été ajouté dans Yarn 2.x. Vous pouvez utiliser Yarn 1.x, mais vous devrez peut-être ajouter des tentatives de niveau supérieur dans les scripts de compilation. Par exemple, exécutez votre commande yarn en boucle afin qu'elle réessaie en cas d'échec du téléchargement des packages.