

Amazon ya no CodeCatalyst está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cómo migrar desde CodeCatalyst](migration.md).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Con npm
<a name="packages-npm"></a>

En estos temas se describe cómo puede utilizar `npm` el administrador de paquetes Node.js con CodeCatalyst.

**nota**  
CodeCatalyst admite `node v4.9.1` y versiones posteriores `npm v5.0.0` y posteriores.

**Topics**
+ [Configuración y uso de npm](packages-npm-use.md)
+ [control de etiquetas npm](packages-npm-tags.md)

# Configuración y uso de npm
<a name="packages-npm-use"></a>

Para usarlo `npm` con CodeCatalyst, debe conectarse `npm` a su repositorio de paquetes y proporcionar un token de acceso personal (PAT) para la autenticación. Puedes ver las instrucciones para conectarte `npm` al repositorio de paquetes en la CodeCatalyst consola.

**Contents**
+ [Configurar npm con CodeCatalyst](#npm-configure)
+ [Instalación de paquetes npm desde un repositorio de paquetes CodeCatalyst](#npm-install)
+ [Instalación de paquetes npm desde npmjs mediante CodeCatalyst](#npm-install-npmjs)
+ [Publicar paquetes npm en tu repositorio de paquetes CodeCatalyst](#npm-publish)
+ [soporte de comandos npm](#npm-commands)
  + [Comandos compatibles que interactúan con un repositorio de paquetes](#supported-commands-that-interact-with-a-repository)
  + [Comandos del lado del cliente compatibles](#supported-client-side-commands)
  + [Comandos admitidos](#unsupported-commands)

## Configurar npm con CodeCatalyst
<a name="npm-configure"></a>

Las siguientes instrucciones explican cómo autenticarse y conectarse `npm` a su repositorio de CodeCatalyst paquetes. Para obtener más información sobre npm, consulte la [documentación oficial de npm](https://docs.npmjs.com/).

**Para conectarse `npm` a su repositorio de CodeCatalyst paquetes**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Vaya a su proyecto.

1. En el panel de navegación, elija **Paquetes**.

1. Seleccione el repositorio de paquetes de la lista.

1. Seleccione **Establecer conexión con el repositorio**.

1. En **Detalles de configuración**, en **Cliente administrador de paquetes**, seleccione **cliente npm**.

1. Seleccione su sistema operativo para ver los pasos de configuración correspondientes.

1. Se necesita un token de acceso personal (PAT) para autenticar npm. CodeCatalyst Si ya tiene un token, puede usarlo. Si no es así, puede crear uno mediante los siguientes pasos.

   1. **(Opcional):** actualice el **Nombre de PAT** y la **Fecha de vencimiento**.

   1. Seleccione **Crear token**.

   1. Copie y almacene el PAT en un lugar seguro.
**aviso**  
Después de cerrar el cuadro de diálogo, no podrá volver a ver ni copiar el PAT. Las credenciales deben ser de corta duración para minimizar el tiempo durante el que un atacante puede utilizarlas tras apropiarse indebidamente de ellas.

1. Ejecute los siguientes comandos desde el directorio raíz del proyecto para configurar npm con su repositorio de paquetes. Los comandos harán lo siguiente:
   + Crear un archivo `.npmrc` en el nivel de proyecto (si el proyecto no tiene uno).
   + Añadir información de punto de conexión del repositorio de paquetes al archivo `.npmrc` en el nivel de proyecto.
   + Añadir sus credenciales (PAT) al archivo `.npmrc` en el nivel de usuario.

   Reemplace los siguientes valores.
**nota**  
Si va a copiar las instrucciones de la consola, debe actualizar los valores de los siguientes comandos; luego, no será necesario cambiarlos.
   + *username*Sustitúyalo por tu nombre CodeCatalyst de usuario.
   + *PAT*Sustitúyalo por tu CodeCatalyst PAT.
   + Reemplácelo por *space\$1name* CodeCatalyst el nombre de su espacio.
   + *proj\$1name*Sustitúyalo por CodeCatalyst el nombre de tu proyecto.
   + *repo\$1name*Sustitúyalo por el nombre CodeCatalyst del repositorio de paquetes.

   ```
   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
   ```

   **Para npm 6 o versiones anteriores:** para que npm siempre pase el token de autenticación CodeCatalyst, incluso para las `GET` solicitudes, defina la variable de configuración always-auth de la siguiente manera. `npm config set`

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

## Instalación de paquetes npm desde un repositorio de paquetes CodeCatalyst
<a name="npm-install"></a>

Después de conectar npm a su repositorio siguiendo los pasos indicados en [Configurar npm con CodeCatalyst](#npm-configure), puede ejecutar comandos `npm` en su repositorio.

Puede instalar un paquete npm que esté en su repositorio de CodeCatalyst paquetes o en uno de sus repositorios anteriores con el comando. `npm install`

```
npm install lodash
```

## Instalación de paquetes npm desde npmjs mediante CodeCatalyst
<a name="npm-install-npmjs"></a>

Puede instalar paquetes npm desde [npmjs.com](https://www.npmjs.com/) a través de un repositorio configurándolo con una conexión ascendente al CodeCatalyst repositorio de puerta de enlace conectado a npmjs.com,. **npm-public-registry-gateway** Los paquetes instalados desde npmjs se ingieren y almacenan en el repositorio de puerta de enlace y en el repositorio de paquetes descendentes más alejado.

**Instalación de paquetes desde npmjs**

1. Si aún no lo ha hecho, configúrelo `npm` con su CodeCatalyst repositorio de paquetes siguiendo los pasos que se indican en. [Configurar npm con CodeCatalyst](#npm-configure) 

1. Comprueba que tu repositorio haya agregado el repositorio de puerta de enlace **npm-public-registry-gateway**,, como conexión ascendente. Puede comprobar qué fuentes ascendentes se añaden o añadir **npm-public-registry-gateway**como fuente ascendente siguiendo las instrucciones que aparecen en el repositorio [Adición de un repositorio ascendente](packages-upstream-repositories-add.md) y seleccionándolo. **npm-public-registry-gateway**

1. Instale los paquetes con el comando `npm install`.

   ```
   npm install package_name
   ```

Para obtener más información sobre cómo solicitar paquetes desde repositorios ascendentes, consulte [Solicitar una versión de paquete con repositorios ascendentes](packages-upstream-repositories-request.md).

## Publicar paquetes npm en tu repositorio de paquetes CodeCatalyst
<a name="npm-publish"></a>

Cuando haya terminado [Configurar npm con CodeCatalyst](#npm-configure), puede ejecutar los comandos `npm`.

Puede publicar un paquete npm en un repositorio de CodeCatalyst paquetes con el `npm publish` comando.

```
npm publish
```

Para obtener información sobre cómo crear paquetes npm, consulte [Creating Node.js Modules](https://docs.npmjs.com/getting-started/creating-node-modules) en *npm Docs*.

## soporte de comandos npm
<a name="npm-commands"></a>

En las siguientes secciones se resumen los `npm` comandos que admiten los repositorios de CodeCatalyst paquetes, además de enumerar los comandos específicos que no son compatibles.

**Topics**
+ [Comandos compatibles que interactúan con un repositorio de paquetes](#supported-commands-that-interact-with-a-repository)
+ [Comandos del lado del cliente compatibles](#supported-client-side-commands)
+ [Comandos admitidos](#unsupported-commands)

### Comandos compatibles que interactúan con un repositorio de paquetes
<a name="supported-commands-that-interact-with-a-repository"></a>

En esta sección, se enumeran los comandos `npm` en los que el cliente de `npm` realiza una o más solicitudes al registro con el que se ha configurado (por ejemplo, `npm config set registry`). Se ha comprobado que estos comandos funcionan correctamente cuando se invocan en un repositorio de CodeCatalyst paquetes.


****  

| Comando | Description (Descripción) | 
| --- | --- | 
|   [errores](https://docs.npmjs.com/cli/bugs)   |  Intenta adivinar la ubicación de la URL del rastreador de errores de un paquete y trata de abrirla.  | 
|   [ci](https://docs.npmjs.com/cli/ci)   |  Instala un proyecto desde cero.  | 
|   [deprecate](https://docs.npmjs.com/cli/deprecate)   |  Deja en desuso una versión de un paquete.  | 
|   [dist-tag](https://docs.npmjs.com/cli/dist-tag)   |  Modifica las etiquetas de distribución de paquetes.  | 
|   [docs](https://docs.npmjs.com/cli/docs)   |  Intenta adivinar la ubicación de la URL de la documentación de un paquete y trata de abrirla mediante el parámetro de configuración `--browser`.  | 
|   [doctor](https://docs.npmjs.com/cli/doctor)   |  Ejecuta un conjunto de comprobaciones para validar que su instalación de npm pueda administrar sus JavaScript paquetes.  | 
|   [install](https://docs.npmjs.com/cli/install)   |  Instala un paquete.  | 
|   [install-ci-test](https://docs.npmjs.com/cli/install-ci-test)   |  Instala un proyecto desde cero y ejecuta pruebas. Alias: `npm cit`. Este comando ejecuta un `npm ci` seguido inmediatamente por un `npm test`.  | 
|   [install-test](https://docs.npmjs.com/cli/install-test)   |  Instala el paquete y ejecuta las pruebas. Ejecuta un `npm install` seguido inmediatamente por un `npm test`.  | 
|   [outdated](https://docs.npmjs.com/cli/outdated)   |  Comprueba el registro configurado para ver si alguno de los paquetes instalados está desactualizado.  | 
|   [ping](https://docs.npmjs.com/cli/ping)   |  Hace ping al registro npm configurado o dado y verifica la autenticación.  | 
|   [publish](https://docs.npmjs.com/cli/publish)   |  Publica una versión del paquete en el registro.  | 
|   [update](https://docs.npmjs.com/cli/update)   |  Intenta adivinar la ubicación de la URL del repositorio de un paquete y trata de abrirla mediante el parámetro de configuración `--browser`.  | 
|   [view](https://docs.npmjs.com/cli/view)   |  Muestra metadatos del paquete. También se puede usar para imprimir las propiedades de los metadatos.  | 

### Comandos del lado del cliente compatibles
<a name="supported-client-side-commands"></a>

Estos comandos no requieren ninguna interacción directa con un repositorio de paquetes, por lo que CodeCatalyst no requieren nada que los respalde.


****  

| Comando | Description (Descripción) | 
| --- | --- | 
|   [bin (heredado)](https://docs.npmjs.com/cli/v8/commands/npm-bin)   |  Muestra el directorio `bin` de npm.  | 
|   [build](https://docs.npmjs.com/cli/v6/commands/npm-build)   |  Crea un paquete.  | 
|   [cache](https://docs.npmjs.com/cli/cache)   |  Manipula la caché de paquetes.  | 
|   [completion](https://docs.npmjs.com/cli/completion)   |  Permite completar tabulaciones en todos los comandos de npm.  | 
|   [config](https://docs.npmjs.com/cli/config)   |  Actualiza el contenido de los archivos `npmrc` globales y de usuario.  | 
|   [dedupe](https://docs.npmjs.com/cli/dedupe)   |  Busca en el árbol de paquetes local e intenta simplificar la estructura moviendo las dependencias más arriba en el árbol, donde pueden compartirse de manera más eficaz entre varios paquetes dependientes.  | 
|   [edit](https://docs.npmjs.com/cli/edit)   |  Edita un paquete instalado. Selecciona una dependencia en el directorio de trabajo actual y abre el directorio del paquete en el editor predeterminado.  | 
|   [explore](https://docs.npmjs.com/cli/explore)   |  Busca un paquete instalado. Genera una subshell en el directorio del paquete instalado especificado. Si se especifica un comando, se ejecuta en la subshell, que finaliza inmediatamente.  | 
|   [help](https://docs.npmjs.com/cli/help)   |  Obtiene ayuda sobre npm.  | 
|   [help-search](https://docs.npmjs.com/cli/help-search)   |  Busca en la documentación de ayuda de npm.  | 
|   [init](https://docs.npmjs.com/cli/init)   |  Crea un archivo `package.json`.  | 
|   [link](https://docs.npmjs.com/cli/link)   |  Enlaza simbólicamente un directorio de paquetes.  | 
|   [ls](https://docs.npmjs.com/cli/ls)   |  Muestra los paquetes instalados.  | 
|   [pack](https://docs.npmjs.com/cli/pack)   |  Crea un tarball a partir de un paquete.  | 
|   [prefix](https://docs.npmjs.com/cli/prefix)   |  Muestra un prefijo. Este es el directorio principal más cercano que contiene un archivo `package.json`, a menos que también se especifique `-g`.  | 
|   [prune](https://docs.npmjs.com/cli/prune)   |  Elimina los paquetes que no figuran en la lista de dependencias del paquete principal.  | 
|   [rebuild](https://docs.npmjs.com/cli/rebuild)   |  Ejecuta el comando `npm build` en las carpetas coincidentes.  | 
|   [restart](https://docs.npmjs.com/cli/restart)   |  Ejecuta los scripts de parada, reinicio e inicio de un paquete, así como los scripts previos y posteriores asociados.  | 
|   [root](https://docs.npmjs.com/cli/root)   |  Imprime el directorio `node_modules` efectivo en formato estándar.  | 
|   [run-script](https://docs.npmjs.com/cli/run-script)   |  Ejecuta scripts de paquetes arbitrarios.  | 
|   [shrinkwrap](https://docs.npmjs.com/cli/shrinkwrap)   |  Bloquea las versiones dependientes para su publicación.  | 
|   [uninstall](https://docs.npmjs.com/cli/uninstall)   |  Desinsta un paquete.  | 

### Comandos admitidos
<a name="unsupported-commands"></a>

Estos `npm` comandos no son compatibles con los repositorios de CodeCatalyst paquetes.


****  

| Comando | Description (Descripción) | Notas | 
| --- | --- | --- | 
|   [access](https://docs.npmjs.com/cli/access)   |  Establece el nivel de acceso de los paquetes publicados.  |  CodeCatalyst usa un modelo de permisos diferente al del repositorio público de npmjs.  | 
|   [adduser](https://docs.npmjs.com/cli/adduser)   |  Añade una cuenta de usuario de registro  |  CodeCatalyst utiliza un modelo de usuario diferente del repositorio público de npmjs.  | 
|   [audit](https://docs.npmjs.com/cli/audit)   |  Realiza una auditoría de seguridad.  |  CodeCatalyst actualmente no vende datos sobre vulnerabilidades de seguridad.  | 
|   [hook](https://docs.npmjs.com/cli/v9/commands/npm-hook)   |  Administra los enlaces npm, lo que incluye agregar, eliminar, enumerar y actualizar.  |  CodeCatalyst actualmente no admite ningún mecanismo de notificación de cambios.  | 
|   [login](https://docs.npmjs.com/cli-commands/adduser.html)   |  Autentica a un usuario. Este es un alias para `npm adduser`.   |  CodeCatalyst utiliza un modelo de autenticación diferente del repositorio público de npmjs. Para obtener información, consulte [Configurar npm con CodeCatalyst](#npm-configure).  | 
|   [logout](https://docs.npmjs.com/cli/logout)   |  Cierra la sesión del registro.  |  CodeCatalyst utiliza un modelo de autenticación diferente del repositorio público de npmjs. No hay forma de cerrar sesión en un CodeCatalyst repositorio, pero los tokens de autenticación caducan una vez transcurrido el tiempo de caducidad configurable. La duración predeterminada del token es de 12 horas.   | 
|   [owner](https://docs.npmjs.com/cli/owner)   |  Administra a los propietarios de los paquetes.  |  CodeCatalyst utiliza un modelo de permisos diferente al del repositorio público de npmjs.  | 
|   [profile](https://docs.npmjs.com/cli/profile)   |  Cambia la configuración de su perfil de registro.  |  CodeCatalyst utiliza un modelo de usuario diferente del repositorio público de npmjs.  | 
|   [search](https://docs.npmjs.com/cli/search)   |  Busca en el registro paquetes que coincidan con los términos de búsqueda.  |  CodeCatalyst no admite el `search` comando.  | 
|   [star](https://docs.npmjs.com/cli/star)   |  Marca sus paquetes favoritos.  |  CodeCatalyst actualmente no admite ningún mecanismo de favoritos.  | 
|   [stars](https://docs.npmjs.com/cli/stars)   |  Visualiza los paquetes marcados como favoritos.  |  CodeCatalyst actualmente no admite ningún mecanismo de favoritos.  | 
|   [team](https://docs.npmjs.com/cli/team)   |  Administra los equipos y las pertenencias a estos.  |  CodeCatalyst utiliza un modelo de membresía de usuarios y grupos diferente del repositorio público de npmjs.  | 
|   [token](https://docs.npmjs.com/cli/token)   |  Administra sus tokens de autenticación.  |  CodeCatalyst utiliza un modelo diferente para obtener los tokens de autenticación. Para obtener información, consulte [Configurar npm con CodeCatalyst](#npm-configure).  | 
|   [unpublish](https://docs.npmjs.com/cli/unpublish)   |  Elimina un paquete del registro.  |  CodeCatalyst no admite la eliminación de una versión de paquete de un repositorio mediante el cliente npm. Puede eliminar un paquete en la consola.  | 
|   [whoami](https://docs.npmjs.com/cli/whoami)   |  Muestra el nombre de usuario de npm.  |  CodeCatalyst usa un modelo de usuario diferente del repositorio público de npmjs.  | 

# control de etiquetas npm
<a name="packages-npm-tags"></a>

Los registros npm admiten *etiquetas*, que son alias de cadena para las versiones de los paquetes. Puede usar etiquetas para proporcionar un alias en lugar de números de versión. Por ejemplo, puede tener un proyecto con varios flujos de desarrollo y usar una etiqueta diferente para cada flujo (como `stable`, `beta`, `dev` o `canary`). Para obtener más información, consulte [dist-tag](https://docs.npmjs.com/cli/dist-tag) en *npm Docs*. 

De forma predeterminada, npm usa la etiqueta `latest` para identificar la versión actual de un paquete. `npm install pkg`(sin especificador `@version` `@tag`) instala la última etiqueta. Por lo general, los proyectos solo utilizan la etiqueta más reciente para las versiones estables. Se utilizan otras etiquetas para las versiones inestables o preliminares. 

## Edición de etiquetas con el cliente npm
<a name="editing-tags-with-the-npm-client"></a>

 Los tres `npm dist-tag` comandos (`add``rm`, y`ls`) funcionan de la misma manera en los repositorios de CodeCatalyst paquetes que en el registro [npm predeterminado](https://registry.npmjs.com/).

## Etiquetas npm y repositorios ascendentes
<a name="packages-tags-and-upstreams"></a>

Cuando `npm` solicita las etiquetas de un paquete y las versiones de ese paquete también están presentes en un repositorio principal, CodeCatalyst fusiona las etiquetas antes de devolverlas al cliente. Por ejemplo, un repositorio denominado `R` tiene un repositorio ascendente denominado `U`. En la siguiente tabla, se muestran las etiquetas de un paquete denominado `web-helper`, que se encuentra en ambos repositorios.


****  

| Repository | Nombre del paquete | Etiquetas del paquete | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *latest* (alias de la versión 1.0.0)  | 
|  U  |  `web-helper`  |   *alpha* (alias de la versión 1.0.1)  | 

En este caso, cuando el cliente npm obtiene las etiquetas del paquete `web-helper` del repositorio `R`, recibe las etiquetas *latest* y *alpha*. Las versiones a las que apuntan las etiquetas no cambiarán.

*Cuando la misma etiqueta está presente en el mismo paquete, tanto en el repositorio original como en el local, CodeCatalyst utiliza la etiqueta que se actualizó por última vez.* Por ejemplo, supongamos que las etiquetas de *webhelper* se han modificado para que tengan el siguiente aspecto.


****  

| Repository | Nombre del paquete | Etiquetas del paquete | Última actualización | 
| --- | --- | --- | --- | 
|  R  |  `web-helper`  |   *latest* (alias de la versión 1.0.0)  |  1 de enero de 2023  | 
|  U  |  `web-helper`  |   *latest* (alias de la versión 1.0.1)  |  1 de junio de 2023  | 

En este caso, cuando el cliente npm obtenga las etiquetas del paquete *web-helper* del repositorio `R`, la etiqueta *latest* usará el alias de la versión *1.0.1* porque es la última que se ha actualizado. Esto facilita el consumo de nuevas versiones de paquetes en un repositorio ascendente que aún no se encuentren en un repositorio local ejecutando `npm update`.