

Amazon n' CodeCatalyst est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour de plus amples informations, veuillez consulter [Comment effectuer une migration depuis CodeCatalyst](migration.md).

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 de npm
<a name="packages-npm"></a>

Ces rubriques décrivent comment vous pouvez utiliser `npm` le gestionnaire de packages Node.js avec CodeCatalyst.

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

**Topics**
+ [Configuration et utilisation de npm](packages-npm-use.md)
+ [gestion des balises npm](packages-npm-tags.md)

# Configuration et utilisation de npm
<a name="packages-npm-use"></a>

Pour l'utiliser `npm` avec CodeCatalyst, vous devez vous connecter `npm` à votre référentiel de packages et fournir un jeton d'accès personnel (PAT) pour l'authentification. Vous pouvez consulter les instructions de connexion `npm` à votre référentiel de packages dans la CodeCatalyst console.

**Contents**
+ [Configuration de npm avec CodeCatalyst](#npm-configure)
+ [Installation de packages npm à partir d'un référentiel CodeCatalyst de packages](#npm-install)
+ [Installation de packages npm depuis npmjs via CodeCatalyst](#npm-install-npmjs)
+ [Publication de packages npm dans votre référentiel de CodeCatalyst packages](#npm-publish)
+ [support des commandes npm](#npm-commands)
  + [Commandes prises en charge qui interagissent avec un référentiel de packages](#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)

## Configuration de npm avec CodeCatalyst
<a name="npm-configure"></a>

Les instructions suivantes expliquent comment vous authentifier et vous connecter `npm` à votre référentiel de CodeCatalyst packages. Pour plus d'informations sur npm, consultez la documentation [officielle de npm.](https://docs.npmjs.com/)

**Pour vous connecter `npm` à votre référentiel de CodeCatalyst packages**

1. Ouvrez la CodeCatalyst console à l'[adresse https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Accédez à votre projet.

1. Dans le panneau de navigation, choisissez **Packages**.

1. Choisissez votre référentiel de packages dans la liste.

1. Choisissez **Connect to repository**.

1. Dans **Détails de configuration**, dans **Package manager client**, choisissez **npm client**.

1. Choisissez votre système d'exploitation pour afficher les étapes de configuration correspondantes.

1. Un jeton d'accès personnel (PAT) est requis pour authentifier npm avec. CodeCatalyst Si vous avez déjà un jeton, vous pouvez l'utiliser. Si ce n'est pas le cas, vous pouvez en créer un en suivant les étapes ci-dessous.

   1. **(Facultatif) :** Mettez à jour le **nom PAT** et la **date d'expiration**.

   1. Choisissez **Créer un jeton**.

   1. Copiez et stockez votre PAT dans un endroit sûr.
**Avertissement**  
Vous ne pourrez plus voir ou copier votre PAT une fois que vous aurez fermé la boîte de dialogue. Les informations d'identification doivent être de courte durée afin de minimiser le temps pendant lequel un attaquant peut les utiliser après les avoir détournées.

1. Exécutez les commandes suivantes depuis le répertoire racine de votre projet pour configurer npm avec votre référentiel de packages. Les commandes effectueront les opérations suivantes :
   + Créez un `.npmrc` fichier au niveau du projet si votre projet n'en possède pas.
   + Ajoutez les informations de point de terminaison du référentiel de packages à votre fichier au niveau du projet`.npmrc`.
   + Ajoutez vos informations d'identification (PAT) à votre `.npmrc` fichier de niveau utilisateur.

   Remplacez les valeurs suivantes.
**Note**  
Si vous copiez les instructions de la console, les valeurs des commandes suivantes sont mises à jour pour vous et il n'est pas nécessaire de les modifier.
   + Remplacez *username* par votre nom CodeCatalyst d'utilisateur.
   + *PAT*Remplacez-le par votre CodeCatalyst PAT.
   + *space\$1name*Remplacez-le par le nom de votre CodeCatalyst espace.
   + Remplacez *proj\$1name* par le nom CodeCatalyst de votre projet.
   + *repo\$1name*Remplacez-le par le nom CodeCatalyst du dépôt de votre package.

   ```
   npm set registry=https://packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/ --location project
   npm set //packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/:_authToken=username:PAT
   ```

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

   ```
   npm set //packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/:always-auth=true --location project
   ```

## Installation de packages npm à partir d'un référentiel CodeCatalyst de packages
<a name="npm-install"></a>

Après avoir connecté npm à votre référentiel en suivant les étapes décrites dans[Configuration de npm avec CodeCatalyst](#npm-configure), vous pouvez exécuter des `npm` commandes sur votre référentiel.

Vous pouvez installer un package npm qui se trouve dans votre référentiel de CodeCatalyst packages ou dans l'un de ses référentiels en amont à l'aide de la `npm install` commande.

```
npm install lodash
```

## Installation de packages npm depuis npmjs via CodeCatalyst
<a name="npm-install-npmjs"></a>

Vous pouvez installer des packages npm depuis [npmjs.com](https://www.npmjs.com/) via un CodeCatalyst référentiel en configurant le référentiel avec une connexion en amont au référentiel de passerelle connecté à npmjs.com,. **npm-public-registry-gateway** Les packages installés à partir de npmjs sont ingérés et stockés dans le référentiel de passerelle, le référentiel de packages le plus éloigné en aval.

**Pour installer des packages depuis npmjs**

1. Si ce n'est pas déjà fait, configurez `npm` avec votre référentiel de CodeCatalyst packages en suivant les étapes décrites dans[Configuration de npm avec CodeCatalyst](#npm-configure). 

1. Vérifiez que votre référentiel a ajouté le référentiel de passerelle **npm-public-registry-gateway**, en tant que connexion en amont. Vous pouvez vérifier quelles sources en amont sont ajoutées ou ajoutées en **npm-public-registry-gateway**tant que source en amont en suivant les instructions [Ajout d’un référentiel en amont](packages-upstream-repositories-add.md) et en choisissant le **npm-public-registry-gateway**référentiel.

1. Installez les packages à l'aide de la `npm install` commande.

   ```
   npm install package_name
   ```

Pour plus d'informations sur la demande de packages à partir de référentiels en amont, consultez[Demande d'une version de package avec des référentiels en amont](packages-upstream-repositories-request.md).

## Publication de packages npm dans votre référentiel de CodeCatalyst packages
<a name="npm-publish"></a>

Une fois que vous avez terminé[Configuration de npm avec CodeCatalyst](#npm-configure), vous pouvez exécuter `npm` des commandes.

Vous pouvez publier un package npm dans un référentiel de CodeCatalyst packages à l'aide de la `npm publish` commande.

```
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 *npm Docs*.

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

Les sections suivantes résument les `npm` commandes prises en charge par les référentiels de CodeCatalyst packages, en plus de répertorier les commandes spécifiques qui ne sont pas prises en charge.

**Topics**
+ [Commandes prises en charge qui interagissent avec un référentiel de packages](#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 de packages
<a name="supported-commands-that-interact-with-a-repository"></a>

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


****  

| Commande | Description | 
| --- | --- | 
|   [punaises](https://docs.npmjs.com/cli/bugs)   |  Devine l'emplacement de l'URL de suivi des bogues d'un package, puis tente 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)   |  Devine l'emplacement de l'URL de documentation d'un package, puis tente 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 valider que votre installation npm peut 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`npm ci`, suivi immédiatement d'un`npm test`.  | 
|   [installation-test](https://docs.npmjs.com/cli/install-test)   |  Installe le package et exécute des tests. Exécute un`npm install`, suivi immédiatement d'un`npm test`.  | 
|   [désuet](https://docs.npmjs.com/cli/outdated)   |  Vérifie le registre configuré pour déterminer si les packages installés sont 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 tente 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 également ê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 de packages et CodeCatalyst ne nécessitent donc rien pour les prendre en charge.


****  

| Commande | Description | 
| --- | --- | 
|   [poubelle (héritage)](https://docs.npmjs.com/cli/v8/commands/npm-bin)   |  Affiche le `bin` répertoire npm.  | 
|   [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 des packages locaux 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 répertoire 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 répertoire de packages.  | 
|   [ls](https://docs.npmjs.com/cli/ls)   |  Répertorie les packages installés.  | 
|   [pack](https://docs.npmjs.com/cli/pack)   |  Crée une archive tar à partir d'un package.  | 
|   [prefix](https://docs.npmjs.com/cli/prefix)   |  Affiche un 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` répertoire 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 `npm` commandes ne sont pas prises en charge par les référentiels de CodeCatalyst packages.


****  

| Commande | Description | Remarques | 
| --- | --- | --- | 
|   [accès](https://docs.npmjs.com/cli/access)   |  Définit le niveau d'accès aux packages publiés.  |  CodeCatalyst 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  |  CodeCatalyst utilise un modèle utilisateur différent du référentiel public npmjs.  | 
|   [audit](https://docs.npmjs.com/cli/audit)   |  Exécute un audit de sécurité.  |  CodeCatalyst ne vend actuellement pas de données relatives aux failles de sécurité.  | 
|   [crochet](https://docs.npmjs.com/cli/v9/commands/npm-hook)   |  Gère les hooks npm, y compris l'ajout, la suppression, la liste et la mise à jour.  |  CodeCatalyst ne prend actuellement en charge aucun 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`.   |  CodeCatalyst utilise un modèle d'authentification différent de celui du dépôt public npmjs. Pour plus d'informations, consultez [Configuration de npm avec CodeCatalyst](#npm-configure).  | 
|   [logout](https://docs.npmjs.com/cli/logout)   |  Se déconnecte du registre.  |  CodeCatalyst 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 CodeCatalyst 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.  |  CodeCatalyst 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.  |  CodeCatalyst utilise un modèle utilisateur différent du référentiel public npmjs.  | 
|   [search](https://docs.npmjs.com/cli/search)   |  Recherche dans le registre les packages correspondant aux termes de recherche.  |  CodeCatalyst ne prend pas en charge la `search` commande.  | 
|   [étoile](https://docs.npmjs.com/cli/star)   |  Marque vos packages préférés.  |  CodeCatalyst ne prend actuellement en charge aucun mécanisme de favoris.  | 
|   [étoiles](https://docs.npmjs.com/cli/stars)   |  Affiche les packages marqués comme favoris.  |  CodeCatalyst ne prend actuellement en charge aucun mécanisme de favoris.  | 
|   [équipe](https://docs.npmjs.com/cli/team)   |  Gère les équipes et les adhésions aux équipes.  |  CodeCatalyst utilise un modèle d'adhésion d'utilisateurs et de groupes différent de celui du référentiel public npmjs.  | 
|   [https://docs.npmjs.com/cli/token](https://docs.npmjs.com/cli/token)token   |  Gère vos jetons d'authentification.  |  CodeCatalyst utilise un modèle différent pour obtenir des jetons d'authentification. Pour plus d'informations, consultez [Configuration de npm avec CodeCatalyst](#npm-configure).  | 
|   [dépublier](https://docs.npmjs.com/cli/unpublish)   |  Supprime un package du registre.  |  CodeCatalyst ne prend pas en charge la suppression d'une version de package d'un référentiel à l'aide du client npm. Vous pouvez supprimer un package dans la console.  | 
|   [whoami](https://docs.npmjs.com/cli/whoami)   |  Affiche le nom d'utilisateur npm.  |  CodeCatalyst utilise un modèle utilisateur différent du référentiel public npmjs.  | 

# gestion des balises npm
<a name="packages-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 d'utiliser des numéros de version. Par exemple, vous avez un projet comportant plusieurs flux de développement et vous utilisez une balise différente pour chaque flux (par exemple`stable`,`beta`,`dev`,`canary`). Pour plus d'informations, consultez [dist-tag](https://docs.npmjs.com/cli/dist-tag) sur *npm* Docs. 

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 n'utilisent la balise la plus récente que pour les versions stables. D'autres balises sont utilisées pour les versions instables ou préliminaires. 

## Modification des 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 les référentiels de CodeCatalyst packages que dans le registre [npm par défaut](https://registry.npmjs.com/).

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

Lorsque `npm` les balises d'un package et les versions de ce package sont également présentes dans un référentiel en amont, CodeCatalyst 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 depuis 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 à la fois dans le référentiel en amont et dans le référentiel local, CodeCatalyst utilise la balise qui a été *mise à jour pour la dernière fois*. 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 | Dernière mise à jour | 
| --- | --- | --- | --- | 
|  R  |  `web-helper`  |   *dernier* (alias pour la version 1.0.0)  |  1er janvier 2023  | 
|  U  |  `web-helper`  |   *dernier* (alias pour la version 1.0.1)  |  1er juin 2023  | 

Dans ce cas, lorsque le client npm récupère les balises du package *web-helper* depuis le référentiel`R`, la *dernière* balise alias la version *1.0.1* car elle a été mise à jour pour la dernière fois. 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 local en exécutant`npm update`.