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.
Configure y use npm con CodeArtifact
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.
Contenido
Configurar npm con el comando login
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.
importante
Si usa npm 10.x o 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
--domainmy_domain
--domain-owner111122223333
--repositorymy_repo
Este comando realiza los siguientes cambios en el archivo ~/.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.
Configurar npm sin usar el comando login
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
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.
CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain
my_domain
--domain-owner111122223333
--query authorizationToken --output text`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.
Sustituye
my_domain
por tu nombre de CodeArtifact dominio.Sustituya
111122223333
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.Sustituya
my_repo por el nombre de su repositorio
. CodeArtifact
aws codeartifact get-repository-endpoint --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--format npmLa 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.
Usa el
npm config set
comando para configurar el registro en tu repositorio. CodeArtifact 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
/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_TOKENPara 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 dealways-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, agregar un token de autenticación y configurarlo. 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
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
Verificar la autenticación y autorización de npm
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
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. CodeArtifact
npm config set registry https://registry.npmjs.com/
Solución de problemas de instalaciones lentas con npm 8.x o superior
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