Azure DevOps Services | Azure DevOps Server 2022: Azure DevOps Server 2019
Azure Artifacts permite a los desarrolladores administrar sus paquetes desde varios orígenes, incluidos los registros públicos, como npmjs.com y fuentes privadas. Para autenticarse con Azure Artifacts, deberá configurar el archivo de configuración de npm. Este archivo contiene direcciones URL de fuente y credenciales usadas por npm, ofreciendo opciones para personalizar el comportamiento del cliente de npm, como configurar servidores proxy, definir ubicaciones de paquetes predeterminadas o configurar fuentes de paquetes privadas. El archivo npmrc se encuentra normalmente en el directorio principal del usuario, pero también se puede crear en el nivel de proyecto para invalidar la configuración predeterminada.
Azure Artifacts recomienda usar dos archivos de configuración independientes. La primera se dedica a la autenticación con Azure Artifacts, mientras que la segunda debe mantenerse localmente para almacenar las credenciales. Este enfoque le permite compartir el archivo de configuración al tiempo que mantiene las credenciales seguras.
Para configurar el segundo archivo, colóquelo en el directorio principal en el equipo de desarrollo e incluya todas las credenciales del Registro. Esto permite al cliente npm acceder fácilmente a sus credenciales para la autenticación.
Los pasos siguientes le guían a través de la configuración del primer archivo de configuración. Seleccione la pestaña correspondiente al entorno de desarrollo:
Nota
vsts-npm-auth no se admite en Azure DevOps Server.
Inicie sesión en la organización de Azure DevOps y vaya al proyecto.
Seleccione Artefactos y, a continuación, seleccione Conectar a la fuente.
Seleccione npm en la barra lateral izquierda. Si es la primera vez que usa Azure Artifacts con npm, asegúrese de que ha instalado los requisitos previos.
Siga las instrucciones de la sección Configuración del proyecto para conectarse a su fuente.
Agregue un archivo .npmrc en el directorio del proyecto, en el mismo directorio que el archivo de package.json y pegue el siguiente fragmento de código en él.
Copie el siguiente fragmento de código y péguelo en el archivo npmrc de nivel de usuario:
Feed con ámbito de organización:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:username=[ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Fuente con ámbito de proyecto:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Ejecuta el siguiente comando en una ventana de comandos y, cuando se te solicite, pega tu token de acceso personal. Una vez hecho esto, copie el valor codificado en Base 64 generado.
Si está en Linux/Mac, también puede usar el siguiente comando para convertir el token de acceso personal en Base 64. Copie el valor codificado en Base64 resultante.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Reemplace los marcadores de posición [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] en el archivo de .npmrc del usuario por el token de acceso personal codificado obtenido del paso anterior.
Inicie sesión en la colección de Azure DevOps y vaya al proyecto.
Seleccione Artefactos y, a continuación, seleccione Conectar a la fuente.
Seleccione npm en la barra lateral izquierda y siga las instrucciones de la sección configuración del proyecto para configurar su archivo de configuración.
Agregue un archivo .npmrc en el directorio del proyecto, en el mismo directorio que el archivo de package.json y pegue el siguiente fragmento de código en él.
Copie el siguiente fragmento de código y péguelo en el archivo .npmrc de nivel de usuario:
Fuente con ámbito de colección:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Fuente con ámbito de proyecto:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Ejecuta el siguiente comando en una ventana de comandos y, cuando se te solicite, pega tu token de acceso personal. Una vez hecho esto, copie el valor codificado en Base 64 generado.
Reemplace los marcadores de posición [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] en el archivo de .npmrc del usuario por el token de acceso personal codificado obtenido del paso anterior.
Copie el siguiente fragmento de código y péguelo en el archivo .npmrc de nivel de usuario:
Fuente con ámbito de colección:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Fuente con ámbito de proyecto:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Ejecuta el siguiente comando en una ventana de comandos y, cuando se te solicite, pega tu token de acceso personal. Una vez hecho esto, copie el valor codificado en Base 64 generado.
Reemplace los marcadores de posición [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] en el archivo de .npmrc del usuario por el token de acceso personal codificado obtenido del paso anterior.
Inicie sesión en la colección de Azure DevOps y vaya al proyecto.
Seleccione Artefactos y, a continuación, seleccione Conectar a la fuente.
Aparecerá una nueva ventana. En el panel de navegación izquierdo, seleccione npm.
Siga las instrucciones proporcionadas para configurar el proyecto y los archivos .npmrc del usuario .
Este error indica que la carpeta de módulos npm no se ha agregado a la ruta de acceso. Vuelva a ejecutar la configuración de Node.js y asegúrese de seleccionar la opción Add to PATH. Como alternativa, puede agregar la carpeta de módulos npm a la ruta modificando la variable PATH para %APPDATA%\npm en la línea de comandos o $env:APPDATA\npm en PowerShell.
No se puede autenticar
Error: código E401 npm ERR! No se puede autenticar:> Ejecute el comando vsts-npm-auth con la marca -F para volver a autenticar:
vsts-npm-auth -config .npmrc -F
Restablecer vsts-npm-auth
Siga estos pasos para restablecer las credenciales de vsts-npm-auth:
Si se produce un error 403, puede indicar un conflicto de nombres. En Azure Artifacts, los paquetes son inmutables, lo que significa que una vez que publicas un paquete en tu feed, su número de versión está reservado permanentemente. Incluso si lo elimina, no puede publicar un nuevo paquete con el mismo número de versión. Para solucionar este problema, actualice la versión del paquete en el archivo package.json e inténtelo de nuevo.