

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.

# Uso de CodeArtifact con npm
<a name="using-npm"></a>

Estos temas describen cómo usar npm, el administrador de paquetes Node.js, con CodeArtifact.

**nota**  
CodeArtifact es compatible con `node v4.9.1` posteriores y `npm v5.0.0` y posteriores.

**Topics**
+ [Configurar y usar npm](npm-auth.md)
+ [Configurar y usar Yarn](npm-yarn.md)
+ [soporte de comandos npm](npm-commands.md)
+ [control de etiquetas npm](npm-tags.md)
+ [Soporte para gestores de paquetes compatibles con npm](npm-other-clients.md)

# Configure y use npm con CodeArtifact
<a name="npm-auth"></a>

Después de crear un repositorio CodeArtifact, puede usar el cliente npm para instalar y publicar paquetes. El método recomendado para configurar npm con el punto de conexión del repositorio y el token de autorización es mediante el comando `aws codeartifact login`. También puede configurar npm de forma manual.

**Contents**
+ [Configurar npm con el comando login](#configure-npm-login-command)
+ [Configurar npm sin usar el comando login](#configuring-npm-without-using-the-login-command)
+ [Ejecutar comandos npm](#running-npm-commands)
+ [Verificar la autenticación y autorización de npm](#verifying-npm-authentication-and-authorization)
+ [Volver al registro npm predeterminado](#revert-default-npm-registry)
+ [Solución de problemas de instalaciones lentas con npm 8.x o superior](#troubleshooting-slow-npm-install)

## Configurar npm con el comando login
<a name="configure-npm-login-command"></a>

Use el comando `aws codeartifact login` para obtener las credenciales para usarlas con npm.

**nota**  
Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir `--domain-owner`. Para obtener más información, consulte [Dominios entre cuentas](domain-overview.md#domain-overview-cross-account).

**importante**  
Si usa npm 10.x o una versión posterior, debe usar la AWS CLI versión 2.9.5 o posterior para ejecutar correctamente el comando. `aws codeartifact login`

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

Este comando realiza los siguientes cambios en el archivo \$1/.npmrc:
+ Agrega un token de autorización después de obtenerlo con tus credenciales. CodeArtifact AWS 
+ Establece el registro npm en el repositorio especificado por la opción `--repository`.
+ **Para npm 6 y versiones anteriores: se** suma `"always-auth=true"` para que el token de autorización se envíe para cada comando de npm.

El período de autorización predeterminado después de una llamada `login` es de 12 horas y `login` debe invocarse para actualizar periódicamente el token. Para obtener más información sobre el token de autorización creado con el comando `login`, consulte [Tokens creados con el comando `login`](tokens-authentication.md#auth-token-login).

## Configurar npm sin usar el comando login
<a name="configuring-npm-without-using-the-login-command"></a>

Puedes configurar npm con tu CodeArtifact repositorio sin el `aws codeartifact login` comando actualizando manualmente la configuración de npm.

**Para configurar npm sin usar el comando login**

1. En una línea de comandos, busca un token de CodeArtifact autorización y guárdalo en una variable de entorno. npm usará este token para autenticarse en tu repositorio. CodeArtifact 
**nota**  
El siguiente comando es para máquinas macOS o Linux. Para obtener información sobre la configuración de variables de entorno en un equipo Windows, consulte [Pasar un token de autenticación mediante una variable de entorno](tokens-authentication.md#env-var).

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

1. Obtén el punto final de tu CodeArtifact repositorio ejecutando el siguiente comando. El punto de conexión de su repositorio se usa para dirigir npm a su repositorio para instalar o publicar paquetes.
   + *my\$1domain*Sustitúyalo por tu nombre de CodeArtifact dominio.
   + *111122223333*Sustitúyelo por el ID de AWS cuenta del propietario del dominio. Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir `--domain-owner`. Para obtener más información, consulte [Dominios entre cuentas](domain-overview.md#domain-overview-cross-account).
   + *my\$1repo*Sustitúyalo por el nombre de tu CodeArtifact repositorio.

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

   La siguiente URL es un punto de conexión de repositorio de ejemplo.

   ```
   https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/
   ```
**importante**  
La URL de registro debe terminar con una barra diagonal (/). De lo contrario, no puede conectarse al repositorio.

1. Usa el `npm config set` comando para configurar el registro en tu CodeArtifact repositorio. Sustituya la URL con la URL del punto de conexión del repositorio del paso anterior.

   ```
   npm config set registry=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/
   ```
**nota**  
Si quiere utilizar un punto de conexión de pila doble, use el punto de conexión `codeartifact.region.on.aws`.

1. Use el comando `npm config set` para agregar su token de autorización a su configuración de npm.

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

   **Para npm 6 o versiones anteriores:** para que npm siempre pase el token de autenticación y CodeArtifact, incluso en el caso de `GET` solicitudes, defina la variable de `always-auth` configuración con. `npm config set` 

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

**Ejemplo de archivo de configuración npm (`.npmrc`)**

 El siguiente es un `.npmrc` archivo de ejemplo después de seguir las instrucciones anteriores para establecer el punto final del CodeArtifact registro, añadir un token de autenticación y realizar la configuración. `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
```

## Ejecutar comandos npm
<a name="running-npm-commands"></a>

Después de configurar el cliente npm, puede ejecutar los comandos npm. Suponiendo que un paquete esté presente en su repositorio o en uno de sus repositorios anteriores, puede instalarlo con `npm install`. Por ejemplo, utilice lo siguiente para instalar el paquete `lodash`.

```
npm install lodash
```

Use el siguiente comando para publicar un nuevo paquete npm en un CodeArtifact repositorio.

```
npm publish
```

Para obtener información sobre cómo crear paquetes npm, consulte [Creación de módulos de Node.js](https://docs.npmjs.com/getting-started/creating-node-modules) en el sitio web de documentación de npm. Para obtener una lista de los comandos npm compatibles CodeArtifact, consulte [npm Command Support.](npm-commands.md) 

## Verificar la autenticación y autorización de npm
<a name="verifying-npm-authentication-and-authorization"></a>

La invocación del comando `npm ping` es una forma de verificar lo siguiente:
+ Ha configurado correctamente sus credenciales para poder autenticarse en un repositorio. CodeArtifact 
+ La configuración de autorización le otorga el permiso `ReadFromRepository`.

El resultado de una invocación exitosa de `npm ping` tendría el siguiente aspecto.

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

La opción `-d` hace que npm imprima información de depuración adicional, incluida la URL del repositorio. Esta información facilita la confirmación de que npm está configurado para usar el repositorio esperado.

## Volver al registro npm predeterminado
<a name="revert-default-npm-registry"></a>

Al configurar npm con, CodeArtifact se establece el registro de npm en el repositorio especificado. CodeArtifact Puede ejecutar el siguiente comando para volver a establecer el registro de npm en su registro predeterminado cuando termine de conectarse a él. CodeArtifact

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

## Solución de problemas de instalaciones lentas con npm 8.x o superior
<a name="troubleshooting-slow-npm-install"></a>

Existe un problema conocido en las versiones de npm 8.x y posteriores por el que si se realiza una solicitud a un repositorio de paquetes y el repositorio redirige el cliente a Amazon S3 en lugar de transmitir los activos directamente, el cliente npm puede bloquearse durante varios minutos por dependencia. 

Como CodeArtifact los repositorios están diseñados para redirigir siempre la solicitud a Amazon S3, a veces se produce este problema, lo que provoca tiempos de compilación prolongados debido a los largos tiempos de instalación de npm. Las instancias de este comportamiento se mostrarán como una barra de progreso durante varios minutos.

Para evitar este problema, utilice los marcadores `--no-progress` o `progress=false` con los comandos de la CLI `npm`, como se muestra en el siguiente ejemplo.

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

# Configurar y usar Yarn con CodeArtifact
<a name="npm-yarn"></a>

Después de crear un repositorio, puede usar el cliente Yarn para administrar los paquetes npm.

**nota**  
`Yarn 1.X` lee y usa la información de su archivo de configuración de npm (.npmrc), pero `Yarn 2.X` no. La configuración de `Yarn 2.X` debe definirse en el archivo .yarnrc.yml.

**Contents**
+ [Configure Yarn 1.X con el comando `aws codeartifact login`](#npm-yarn-configure-login)
+ [Configure Yarn 2.X con el comando `yarn config set`](#npm-yarn-configure-yarn-command)

## Configure Yarn 1.X con el comando `aws codeartifact login`
<a name="npm-yarn-configure-login"></a>

Para `Yarn 1.X`, puede configurar Yarn con CodeArtifact mediante el comando `aws codeartifact login`. El comando `login` configurará su archivo \$1/.npmrc con la información y las credenciales del punto de conexión del repositorio CodeArtifact. Con `Yarn 1.X`, los comandos `yarn` utilizan la información de configuración del archivo \$1/.npmrc.

**Para configurar `Yarn 1.X` con el comando login**

1. Si aún no lo ha hecho, debe configurar sus credenciales AWS para utilizarlas con la AWS CLI, tal y como se describe en [Introducción a CodeArtifact](getting-started.md).

1. Para ejecutar el comando `aws codeartifact login` correctamente, npm debe estar instalado. Consulte [Descarga e instalación de Node.js y npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm/) en la *documentación de npm* para obtener instrucciones de instalación.

1. Use el comando `aws codeartifact login` para obtener las credenciales de CodeArtifact y configurar su archivo \$1/.npmrc.
   + Sustituya *my\$1domain* por su nombre de dominio de CodeArtifact.
   + Sustituya *111122223333* por el ID de cuenta AWS del propietario del dominio. Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir `--domain-owner`. Para obtener más información, consulte [Dominios entre cuentas](domain-overview.md#domain-overview-cross-account).
   + Sustituya *my\$1repo* por el nombre de su repositorio de CodeArtifact.

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

   El comando `login` realiza los siguientes cambios en el archivo \$1/.npmrc:
   + Añada un token de autorización después de obtenerlo de CodeArtifact con sus credenciales AWS.
   + Establece el registro npm en el repositorio especificado por la opción `--repository`.
   + **Para npm 6 y versiones anteriores: se** suma `"always-auth=true"` para que el token de autorización se envíe para cada comando de npm.

   El período de autorización predeterminado después de una llamada `login` es de 12 horas y `login` debe invocarse para actualizar periódicamente el token. Para obtener más información sobre el token de autorización creado con el comando `login`, consulte [Tokens creados con el comando `login`](tokens-authentication.md#auth-token-login).

1. **Para npm 7.X y 8.X**, debe añadir `always-auth=true` a su archivo \$1/.npmrc para usar Yarn.

   1. Abra su archivo \$1/.npmrc en un editor de texto y añada `always-auth=true` en una nueva línea.

Puede usar el comando `yarn config list` para comprobar que Yarn está usando la configuración correcta. Tras ejecutar el comando, compruebe los valores de la sección `info npm config`. El contenido debe ser similar al siguiente fragmento.

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

## Configure Yarn 2.X con el comando `yarn config set`
<a name="npm-yarn-configure-yarn-command"></a>

El siguiente procedimiento detalla cómo realizar la configuración de `Yarn 2.X` actualizando su configuración `.yarnrc.yml` desde la línea de comandos con el comando `yarn config set`.

**Para actualizar la configuración `yarnrc.yml` desde la línea de comandos**

1. Si aún no lo ha hecho, debe configurar sus credenciales AWS para utilizarlas con la AWS CLI, tal y como se describe en [Introducción a CodeArtifact](getting-started.md).

1. Use el comando `aws codeartifact get-repository-endpoint` para obtener el punto de conexión de tu repositorio de CodeArtifact.
   + Sustituya *my\$1domain* por su nombre de dominio de CodeArtifact.
   + Sustituya *111122223333* por el ID de cuenta AWS del propietario del dominio. Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir `--domain-owner`. Para obtener más información, consulte [Dominios entre cuentas](domain-overview.md#domain-overview-cross-account).
   + Sustituya *my\$1repo* por el nombre de su repositorio de CodeArtifact.

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

1. Actualice el valor `npmRegistryServer` de su archivo .yarnrc.yml con el punto de conexión de su repositorio.

   ```
   yarn config set npmRegistryServer "https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"
   ```

1. Obtenga un token de autorización CodeArtifact y guárdelo en una variable de entorno.
**nota**  
El siguiente comando es para máquinas macOS o Linux. Para obtener información sobre la configuración de variables de entorno en un equipo Windows, consulte [Pasar un token de autenticación mediante una variable de entorno](tokens-authentication.md#env-var).
   + Sustituya *my\$1domain* por su nombre de dominio de CodeArtifact.
   + Sustituya *111122223333* por el ID de cuenta AWS del propietario del dominio. Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir `--domain-owner`. Para obtener más información, consulte [Dominios entre cuentas](domain-overview.md#domain-overview-cross-account).
   + Sustituya *my\$1repo* por el nombre de su repositorio de CodeArtifact.

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

1. Use el comando `yarn config set` para añadir su token de autenticación CodeArtifact a su archivo .yarnrc.yml. Sustituya la URL del siguiente comando por la URL del punto de conexión del repositorio del paso 2.

   ```
   yarn config set 'npmRegistries["https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"].npmAuthToken' "${CODEARTIFACT_AUTH_TOKEN}"
   ```

1. Utilice el comando `yarn config set` para establecer el valor de `npmAlwaysAuth` a `true`. Sustituya la URL del siguiente comando por la URL del punto de conexión del repositorio del paso 2.

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

Tras la configuración, el archivo de configuración .yarnrc.yml debería tener un contenido similar al del siguiente fragmento.

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

También puede usar el comando `yarn config` para comprobar los valores de `npmRegistries` y `npmRegistryServer`.

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

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

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

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

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


****  

| Comando | Description (Descripción) | 
| --- | --- | 
|   [bugs](https://docs.npmjs.com/cli/bugs)   |  Intenta adivinar la ubicación de la URL del rastreador de errores de un paquete y, a continuación, intenta 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, a continuación, intenta abrirla mediante el parámetro de configuración `--browser`.  | 
|   [doctor](https://docs.npmjs.com/cli/doctor)   |  Ejecuta una serie de comprobaciones para garantizar que su instalación de npm tenga lo que necesita para 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 se 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 actualmente.  | 
|   [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)   |  Averigua la ubicación de la URL del repositorio de un paquete y, a continuación, intenta abrirla mediante el parámetro de configuración `--browser`.  | 
|   [view](https://docs.npmjs.com/cli/view)   |  Muestra metadatos del paquete. Se puede usar para imprimir las propiedades de los metadatos.  | 

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

Estos comandos no requieren ninguna interacción directa con un repositorio, por lo que CodeArtifact no es necesario hacer nada para respaldarlos.


****  

| Comando | Description (Descripción) | 
| --- | --- | 
|   [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 la carpeta 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 una carpeta 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 el 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 la carpeta `node_modules` efectiva 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>

Los CodeArtifact repositorios no admiten estos comandos npm.


****  

| Comando | Description (Descripción) | Notas | 
| --- | --- | --- | 
|   [access](https://docs.npmjs.com/cli/access)   |  Establece el nivel de acceso de los paquetes publicados.  |  CodeArtifact 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  |  CodeArtifact 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.  |  CodeArtifact actualmente no vende datos sobre vulnerabilidades de seguridad.  | 
|   [hook](https://docs.npmjs.com/cli/hook)   |  Administra los enlaces npm, lo que incluye agregar, eliminar, enumerar y actualizar.  |  CodeArtifact actualmente no admite ningún tipo de 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`.   |  CodeArtifact utiliza un modelo de autenticación diferente del repositorio público de npmjs. Para obtener información, consulte [Autenticación con npm](npm-auth.md).  | 
|   [logout](https://docs.npmjs.com/cli/logout)   |  Cierra la sesión del registro.  |  CodeArtifact utiliza un modelo de autenticación diferente del repositorio público de npmjs. No hay forma de cerrar sesión en un CodeArtifact 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.  |  CodeArtifact 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.  |  CodeArtifact 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.  |  CodeArtifact admite una funcionalidad de búsqueda limitada con el comando [list-packages](list-packages.md).  | 
|   [star](https://docs.npmjs.com/cli/star)   |  Marca sus paquetes favoritos.  |  CodeArtifact actualmente no admite ningún tipo de mecanismo de favoritos.  | 
|   [stars](https://docs.npmjs.com/cli/stars)   |  Visualiza los paquetes marcados como favoritos.  |  CodeArtifact actualmente no admite ningún tipo de mecanismo de favoritos.  | 
|   [team](https://docs.npmjs.com/cli/team)   |  Administra los equipos de la organización y las membresías de los equipos.  |  CodeArtifact utiliza un modelo de membresía de usuarios y grupos que es diferente del repositorio público de npmjs. Para obtener información, consulte [Identidades (usuarios, grupos y roles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) en la *Guía del usuario de IAM*.  | 
|   [token](https://docs.npmjs.com/cli/token)   |  Administra sus tokens de autenticación.  |  CodeArtifact utiliza un modelo diferente para obtener los tokens de autenticación. Para obtener información, consulte [Autenticación con npm](npm-auth.md).  | 
|   [unpublish](https://docs.npmjs.com/cli/unpublish)   |  Elimina un paquete del registro.  |  CodeArtifact no admite la eliminación de una versión de paquete de un repositorio mediante el cliente npm. Puede utilizar el comando [delete-package-version](delete-package.md).  | 
|   [whoami](https://docs.npmjs.com/cli/whoami)   |  Muestra el nombre de usuario de npm.  |  CodeArtifact usa un modelo de usuario diferente del repositorio público de npmjs.  | 

# control de etiquetas npm
<a name="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 (por ejemplo `stable`, `beta`, `dev`, `canary`) para cada flujo. Para obtener más información, consulte [dist-tag](https://docs.npmjs.com/cli/dist-tag) en el sitio web de npm. 

 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 utilizan la etiqueta más reciente solo para las versiones estables. Se utilizan otras etiquetas para las versiones inestables o preliminares. 

## Editar 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 forma idéntica en los repositorios de CodeArtifact que en el [registro npm predeterminado](https://registry.npmjs.com/).

## Etiquetas npm y la API CopyPackageVersions
<a name="tags-and-cpv"></a>

Cuando usa la API `CopyPackageVersions` para copiar una versión del paquete npm, todas las etiquetas que dan un alias a esa versión se copian en el repositorio de destino. Cuando una versión que se está copiando tiene una etiqueta que también está presente en el destino, la operación de copia establece el valor de la etiqueta en el repositorio de destino para que coincida con el valor del repositorio de origen.

Por ejemplo, supongamos que tanto el repositorio S como el repositorio D contienen una única versión del paquete `web-helper` con el conjunto de etiquetas latest, como se muestra en esta tabla.


****  

| Repositorio | Nombre del paquete | Etiquetas del paquete | 
| --- | --- | --- | 
|  S  |  `web-helper`  |   *latest* (alias de la versión 1.0.1)  | 
|  D  |  `web-helper`  |   *latest* (alias de la versión 1.0.0)  | 

 `CopyPackageVersions` se invoca para copiar `web-helper` 1.0.1 de S a D. Una vez finalizada la operación, la etiqueta `latest` en `web-helper` del repositorio D pasa a ser el alias 1.0.1, no el 1.0.0.

Si necesita cambiar las etiquetas después de copiarlas, utilice el comando `npm dist-tag` para modificarlas directamente en el repositorio de destino. Para obtener más información sobre la API `CopyPackageVersions`, consulte [Copiar paquetes entre repositorios](copy-package.md).

## Etiquetas npm y repositorios ascendentes
<a name="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 ascendente, CodeArtifact 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 está presente en ambos repositorios.


****  

| Repositorio | 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 busca 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 ascendente como en el descendente, CodeArtifact usa la etiqueta que está presente en el repositorio *ascendente*. Por ejemplo, supongamos que las etiquetas de *webhelper* se han modificado para que tengan el siguiente aspecto.


****  

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

En este caso, cuando el cliente npm busque las etiquetas del paquete *web-helper* del repositorio R, la etiqueta *latest* usará el alias de la versión *1.0.1* porque es lo que está en el repositorio ascendente. Esto facilita el consumo de nuevas versiones de paquetes en un repositorio ascendente que aún no están presentes en un repositorio descendente mediante la ejecución de `npm update`.

El uso de la etiqueta en el repositorio ascendente puede resultar problemático a la hora de publicar nuevas versiones de un paquete en un repositorio descendente. Por ejemplo, supongamos que la última etiqueta del paquete *web-helper* es la misma tanto en R como en U.


****  

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

Cuando la versión 1.0.2 se publica en R, npm actualiza la etiqueta *latest* a 1.0.2.


****  

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

Sin embargo, el cliente npm nunca ve este valor de etiqueta porque el valor de *latest* en U es 1.0.1. Si se ejecuta `npm install` en el repositorio R inmediatamente después de publicar la 1.0.2, se instala la 1.0.1 en lugar de la versión que se acaba de publicar. Para instalar la versión publicada más recientemente, debe especificar la versión exacta del paquete, de la siguiente manera.

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

# Soporte para gestores de paquetes compatibles con npm
<a name="npm-other-clients"></a>

Estos otros administradores de paquetes son compatibles con CodeArtifact y funcionan con el formato de paquete npm y el protocolo npm wire: 
+  [Administrador de paquetes pnpm.](https://pnpm.js.org) La última versión confirmada que funciona con CodeArtifact es la 3.3.4, que se lanzó el 18 de mayo de 2019. 
+  [Administrador de paquetes Yarn.](https://yarnpkg.com/) La última versión confirmada que funciona con CodeArtifact es la 1.21.1, que se lanzó el 11 de diciembre de 2019. 

**nota**  
Recomendamos usar Yarn 2.x con CodeArtifact. Yarn 1.x no tiene reintentos HTTP, lo que significa que es más susceptible a fallos de servicio intermitentes que se traducen en códigos de estado de nivel 500 o errores. No hay forma de configurar una estrategia de reintentos diferente para Yarn 1.x, pero se ha añadido en Yarn 2.x. Puede usar Yarn 1.x, pero es posible que tenga que añadir reintentos de nivel superior en los scripts de compilación. Por ejemplo, ejecute el comando yarn en bucle para que vuelva a intentarlo si se produce un error al descargar los paquetes.