Configurar y usar Yarn con CodeArtifact - CodeArtifact

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

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.

Configure Yarn 1.X con el comando aws codeartifact login

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.

  2. Para ejecutar el comando aws codeartifact login correctamente, npm debe estar instalado. Consulte Descarga e instalación de Node.js y npm en la documentación de npm para obtener instrucciones de instalación.

  3. 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.

    • 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.

  4. 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

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.

  2. 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.

    • 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
  3. 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/"
  4. 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.

    • 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.

    • 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`
  5. 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}"
  6. 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.