

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.

# 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 \~/.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 \~/.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 \~/.npmrc.
   + Sustituya {{my\_domain}} 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\_repo}} 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 \~/.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 \~/.npmrc para usar Yarn.

   1. Abra su archivo \~/.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\_domain}} 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\_repo}} 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\_domain}} 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\_repo}} 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`.