npmAuthenticate@0: tarea de autenticación de npm (para ejecutores de tareas) v0
Use esta tarea para proporcionar npm
credenciales a un .npmrc
archivo del repositorio para el ámbito de la compilación. Esto permite npm
que los ejecutores de tareas, como npm
Gulp y Grunt, se autentiquen con registros privados.
Sintaxis
# npm authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
inputs:
workingFile: # string. Required. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this organization/collection.
# npm Authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like Gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
inputs:
#workingFile: # string. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this account/collection.
Entradas
workingFile
- Archivo .npmrc para autenticarse
string
. Obligatorio.
Ruta de acceso al .npmrc
archivo con la que se especifican los registros con los que desea trabajar. Seleccione el archivo, no la carpeta , como /packages/mypackage.npmrc
.
workingFile
- Archivo .npmrc para autenticarse
string
.
Ruta de acceso al .npmrc
archivo con la que se especifican los registros con los que desea trabajar. Seleccione el archivo, no la carpeta , como /packages/mypackage.npmrc
.
customEndpoint
- Credenciales para registros fuera de esta organización o colección
string
.
Lista separada por comas de nombres de conexión de servicio npm para registros fuera de esta organización o colección. El archivo especificado .npmrc
debe contener entradas del Registro correspondientes a las conexiones de servicio. Si solo necesita registros en esta organización o colección, déjelo en blanco. Las credenciales de la compilación se usan automáticamente.
customEndpoint
- Credenciales para registros fuera de esta cuenta o colección
string
.
Lista separada por comas de nombres de conexión de servicio npm para registros fuera de esta organización o colección. El archivo especificado .npmrc
debe contener entradas del Registro correspondientes a las conexiones de servicio. Si solo necesita registros en esta organización o colección, déjelo en blanco. Las credenciales de la compilación se usan automáticamente.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de sus entradas de tareas. Para obtener más información, vea Opciones de control y propiedades de tareas comunes.
Variables de salida
Ninguno.
Observaciones
Use esta tarea para proporcionar npm
credenciales a un .npmrc
archivo del repositorio para el ámbito de la compilación. Esto permite npm
que los ejecutores de tareas, como npm
Gulp y Grunt, se autentiquen con registros privados.
- ¿Cómo funciona esta tarea?
- ¿Cuándo debo ejecutar esta tarea en mi canalización?
- Tengo varios proyectos de npm. ¿Necesito ejecutar esta tarea para cada archivo .npmrc?
- Mi agente está detrás de un proxy web. ¿Se configurará
npmAuthenticate
npm/gulp/Grunt
para usar mi proxy? - Mi canalización necesita acceder a una fuente en un proyecto diferente
¿Cómo funciona esta tarea?
Esta tarea busca entradas del Registro en el archivo especificado .npmrc
y, a continuación, anexa los detalles de autenticación de los registros detectados al final del archivo. Para todos los registros de la organización o colección actuales, se usan las credenciales de la compilación. En el caso de los registros de otra organización o hospedados por un tercero, los URI del Registro se compararán con los URI de las conexiones de servicio npm especificadas por la customEndpoint
entrada y se usarán las credenciales correspondientes. El .npmrc
archivo se revertirá a su estado original al final de la ejecución de la canalización.
¿Cuándo debo ejecutar esta tarea en mi canalización?
Esta tarea debe ejecutarse antes de usar npm
, o un npm
ejecutor de tareas, para instalar o insertar paquetes en un repositorio npm autenticado, como Azure Artifacts. No hay otros requisitos de ordenación.
Tengo varios proyectos de npm. ¿Necesito ejecutar esta tarea para cada archivo .npmrc?
Esta tarea solo agregará detalles de autenticación a un .npmrc
archivo cada vez. Si necesita autenticación para varios .npmrc
archivos, puede ejecutar la tarea varias veces, una vez para cada .npmrc
archivo. Como alternativa, considere la posibilidad de crear un .npmrc
archivo que especifique todos los registros usados por los proyectos, ejecutándose npmAuthenticate
en este .npmrc
archivo y, a continuación, estableciendo una variable de entorno para designar este .npmrc
archivo como archivo de configuración npm por usuario.
- task: npmAuthenticate@0
inputs:
workingFile: $(agent.tempdirectory)/.npmrc
- script: echo ##vso[task.setvariable variable=NPM_CONFIG_USERCONFIG]$(agent.tempdirectory)/.npmrc
- script: npm ci
workingDirectory: project1
- script: npm ci
workingDirectory: project2
Mi agente está detrás de un proxy web. ¿Se configurará npmAuthenticate
npm/gulp/Grunt
para usar mi proxy?
La respuesta es no. Aunque esta propia tarea funcionará detrás de un proxy web que el agente se ha configurado para su uso, no configura npm
ni npm
ejecuta tareas para usar el proxy.
Para ello, puede:
Establezca las variables
http_proxy
/https_proxy
de entorno y, opcionalmente,no_proxy
en la configuración del proxy. Consulte npm config (Configuración de npm ) para obtener más información. Tenga en cuenta que se usan normalmente variables que otras herramientas que nonpm
son (por ejemplo, curl) también pueden usar.Agregue la configuración de proxy a la configuración de npm, ya sea manualmente, mediante el conjunto de configuración de npm o estableciendo las variables de entorno prefijos con
NPM_CONFIG_
.Precaución:
npm
Es posible que los ejecutores de tareas no sean compatibles con todos los métodos de configuración de proxy admitidos pornpm
.Especifique el proxy con una marca de línea de comandos al llamar a
npm
.- script: npm ci --https-proxy $(agent.proxyurl)
Si el proxy requiere autenticación, es posible que tenga que agregar un paso de compilación adicional para construir un URI de proxy autenticado.
- script: node -e "let u = url.parse(`$(agent.proxyurl)`); u.auth = `$(agent.proxyusername):$(agent.proxypassword)`; console.log(`##vso[task.setvariable variable=proxyAuthUri;issecret=true]` + url.format(u))"
- script: npm publish --https-proxy $(proxyAuthUri)
Mi canalización necesita acceder a una fuente en un proyecto diferente
Si la canalización se ejecuta en un proyecto diferente al que hospeda la fuente, debe configurar el otro proyecto para conceder acceso de lectura y escritura al servicio de compilación. Consulte Permisos de paquete en Azure Pipelines para más información.
Ejemplos
- Restaurar
npm
paquetes para el proyecto desde un registro dentro de la organización - Restauración y publicación de
npm
paquetes fuera de la organización - npmrc
- npm
Restaurar npm
paquetes para el proyecto desde un registro dentro de la organización
Si los únicos registros autenticados que usa son los registros de Azure Artifacts de su organización, solo tiene que especificar la ruta de acceso a un .npmrc
archivo para la npmAuthenticate
tarea.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/npm/registry/
always-auth=true
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
- script: npm ci
# ...
- script: npm publish
Restauración y publicación de npm
paquetes fuera de la organización
.npmrc
Si contiene registros de Azure Artifacts de otra organización o usa un repositorio de paquetes autenticado de terceros, deberá configurar conexiones de servicio npm y especificarlas en la customEndpoint
entrada.
Los registros de la organización de Azure Artifacts también se autenticarán automáticamente.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/npm/registry/
@{scope}:registry=https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
@{otherscope}:registry=https://{thirdPartyRepository}/npm/registry/
always-auth=true
La dirección URL del Registro que apunta a una fuente de Azure Artifacts puede contener o no el proyecto. Una dirección URL de una fuente con ámbito de proyecto debe contener el proyecto y la dirección URL de una fuente con ámbito de organización no debe contener el proyecto. Obtenga más información sobre las fuentes con ámbito del proyecto.
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection
- script: npm ci
# ...
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
OtherOrganizationNpmConnection
y ThirdPartyRepositoryNpmConnection
son los nombres de las conexiones de servicio npm que se han configurado y autorizado para su uso en la canalización y tienen direcciones URL que coinciden con las del archivo especificado .npmrc
.
Requisitos
Requisito | Descripción |
---|---|
Tipos de canalización | YAML, compilación clásica, versión clásica |
Se ejecuta en | Agente, DeploymentGroup |
Peticiones | Ninguno |
Capabilities | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
Restricciones de comandos | Any |
Variables que se pueden establecer | Any |
Versión del agente | 2.115.0 o superior |
Categoría de la tarea: | Paquete |