Esta acción proporciona la siguiente funcionalidad para los usuarios de GitHub Actions:
Opcionalmente, descargar y almacenar en caché la distribución de la versión solicitada de Node.js y agregarla a la RUTA.
Opcionalmente almacenar en caché las dependencias npm/yarn/pnpm
Registro de comparadores de problemas para salida de errores
Configurar la autenticación para GPR o npm
Ver acción.yml
- usos: acciones/setup-node@v4 con:# Versión Especificación de la versión a usar en notación SemVer.# También admite alias como lts/*, Latest, Nightly y Canary Builds# Ejemplos: 12.x, 10.15.1, >=10.15.0, lts/ Hidrógeno, 16 noches, último, versión de nodo de nodo: ''# Archivo que contiene la especificación de la versión que se utilizará. Ejemplos: paquete.json, .nvmrc, .node-version, .tool-versions.# Si se proporcionan la versión de nodo y el archivo de versión de nodo, la acción utilizará la versión de la versión de nodo. node-version-file: ''# Establezca esta opción si desea que la acción busque la última versión disponible # que satisfaga la especificación de versión.# Solo tendrá efecto para las versiones lts de Nodejs (12.x, >=10.15. 0, lts/Hidrógeno). # Valor predeterminado: falsecheck-latest: false# Arquitectura de destino para que la utilice Node. Ejemplos: x86, x64. Utilizará la arquitectura del sistema de forma predeterminada.# Predeterminado: ''. La acción utiliza la arquitectura del sistema de forma predeterminada: ''# Se utiliza para extraer distribuciones de nodos de https://github.com/actions/node-versions. # Dado que existe un valor predeterminado, normalmente el usuario no lo proporciona. # Al ejecutar esta acción en github.com, el valor predeterminado es suficiente. # Cuando ejecuta GHES, puede pasar un token de acceso personal para github.com si experimenta una limitación de velocidad.## Recomendamos utilizar una cuenta de servicio con los permisos mínimos necesarios. Además# al generar una nueva PAT, seleccione los alcances mínimos necesarios.## [Obtenga más información sobre cómo crear y usar secretos cifrados](https://help.github.com/en/actions/automating-your-workflow-with-github -acciones/crear-y-usar-secretos-cifrados)## Predeterminado: ${{ github.server_url == 'https://github.com' && github.token || '' }}token: ''# Se utiliza para especificar un administrador de paquetes para el almacenamiento en caché en el directorio predeterminado. Valores admitidos: npm, hilo, pnpm.# El administrador de paquetes debe estar preinstalado# Valor predeterminado: ''cache: ''# Se utiliza para especificar la ruta a un archivo de dependencia: paquete-lock.json, hilo.lock, etc. Generará hash a partir del archivo de destino para la clave principal. Sólo funciona si se especifica caché. # Admite comodines o una lista de nombres de archivos para almacenar en caché múltiples dependencias. # Predeterminado: ''cache-dependency-path: ''# Registro opcional para configurar para autenticación. Establecerá el registro en un archivo .npmrc y .yarnrc a nivel de proyecto, # y configurará la autenticación para leer desde env.NODE_AUTH_TOKEN.# Valor predeterminado: ''registry-url: ''# Alcance opcional para la autenticación en registros con alcance. # Recurrirá al propietario del repositorio cuando se utilice el registro de paquetes de GitHub (https://npm.pkg.github.com/).# Predeterminado: ''alcance: ''# Establezca la opción de autenticación siempre en el archivo npmrc.# Predeterminado : ''autenticación siempre: ''
Básico:
pasos: - usos: acciones/checkout@v4- usos: acciones/setup-node@v4 con: versión-nodo: 18- ejecutar: npm ci- ejecutar: npm test
La entrada node-version
es opcional. Si no se proporciona, se utilizará la versión del nodo de PATH. Sin embargo, se recomienda especificar siempre la versión de Node.js y no confiar en la del sistema.
La acción primero verificará el caché local en busca de una coincidencia de semver. Si no se puede encontrar una versión específica en el caché, la acción intentará descargar una versión de Node.js. Extraerá las versiones LTS de las versiones de nodo y, en caso de error o falla, volverá al comportamiento anterior de descargar directamente desde el nodo dist.
Para obtener información sobre las versiones almacenadas en caché local de Node.js en ejecutores alojados en GitHub, consulte Imágenes de GitHub Actions Runner.
La entrada node-version
admite la especificación de versiones semánticas; para obtener ejemplos más detallados, consulte la documentación del paquete semver.
Ejemplos:
Versiones principales: 18
, 20
Versiones más específicas: 10.15
, 16.15.1
, 18.4.0
Sintaxis NVM LTS: lts/erbium
, lts/fermium
, lts/*
, lts/-n
Última versión: *
o latest
/ current
/ node
Nota: Al igual que los otros valores, *
obtendrá la última versión de Node.js almacenada en caché local o la última versión de acciones/versiones de nodo, según la entrada check-latest
.
current
/ latest
/ node
siempre se resuelve con la última versión dist. Luego, esa versión se descarga desde acciones/versiones de nodo si es posible, o directamente desde Node.js si no. Dado que no siempre se almacenará en caché, existe la posibilidad de alcanzar el límite de velocidad al descargar desde dist
Siempre se recomienda confirmar el archivo de bloqueo de su administrador de paquetes por razones de seguridad y rendimiento. Para obtener más información, consulte la sección "Trabajar con archivos de bloqueo" de la guía de uso avanzado.
La acción tiene una funcionalidad incorporada para almacenar en caché y restaurar dependencias. Utiliza acciones/caché internamente para almacenar en caché los datos de paquetes globales, pero requiere menos ajustes de configuración. Los administradores de paquetes admitidos son npm
, yarn
, pnpm
(v6.10+). La entrada cache
es opcional y el almacenamiento en caché está desactivado de forma predeterminada.
De forma predeterminada, la acción busca el archivo de dependencia ( package-lock.json
, npm-shrinkwrap.json
o yarn.lock
) en la raíz del repositorio y usa su hash como parte de la clave de caché. Utilice cache-dependency-path
en los casos en los que se utilicen varios archivos de dependencia o estén ubicados en subdirectorios diferentes.
Nota: La acción no almacena en caché node_modules
Vea los ejemplos de uso de caché para yarn
/ pnpm
y entrada de cache-dependency-path
en la guía de uso avanzado.
Almacenamiento en caché de dependencias de npm:
pasos: - usos: acciones/checkout@v4- usos: acciones/setup-node@v4 con:node-version: 20cache: 'npm'- ejecutar: npm ci- ejecutar: npm test
Almacenamiento en caché de dependencias de npm en monorepos:
pasos: - usos: acciones/checkout@v4- usos: acciones/setup-node@v4 con:node-version: 20cache: 'npm'cache-dependency-path: subdir/package-lock.json- run: npm ci- run: npm test
trabajos: compilación: ejecución: ubuntu-lateststrategy: matriz: nodo: [ 14, 16, 18 ] nombre: Nodo $ {{ matriz.nodo }} pasos de muestra: - usos: acciones/checkout@v4 - nombre: nodo de configuración usos: acciones/setup-node@v4con: versión-nodo: ${{ Matrix.node }} - ejecutar: npm ci - ejecutar: npm test
setup-node
en GHES setup-node
viene preinstalado en el dispositivo con GHES si Acciones está habilitada. Al descargar dinámicamente distribuciones de Nodejs, setup-node
descarga distribuciones desde actions/node-versions
en github.com (fuera del dispositivo). Estas llamadas a actions/node-versions
se realizan a través de solicitudes no autenticadas, que están limitadas a 60 solicitudes por hora por IP. Si se realizan más solicitudes dentro del período de tiempo, comenzará a ver errores de límite de velocidad durante la descarga que se ven así: ##[error]API rate limit exceeded for...
. Después de ese error, la acción intentará descargar versiones directamente desde el sitio oficial, pero también puede tener un límite de velocidad, por lo que es mejor poner un token.
Para obtener un límite de tasa más alto, puedes generar un token de acceso personal en github.com y pasarlo como entrada del token
para la acción:
utiliza: acciones/setup-node@v4with: token: ${{ secrets.GH_DOTCOM_TOKEN }} versión de nodo: 20
Si el ejecutor no puede acceder a github.com, cualquier versión de Nodejs solicitada durante la ejecución de un flujo de trabajo debe provenir del caché de herramientas del ejecutor. Consulte "Configurar la caché de herramientas en ejecutores autohospedados sin acceso a Internet" para obtener más información.
Consulta la última versión
Usando un archivo de versión de nodo
Usando diferentes arquitecturas
Usando versiones canarias v8
Usando versiones nocturnas
Usando versiones rc
Almacenamiento en caché de datos de paquetes
Utilizar múltiples sistemas operativos y arquitecturas.
Publicar en npmjs y GPR con npm
Publicación en npmjs y GPR con hilo
Usando paquetes privados
Los scripts y la documentación de este proyecto se publican bajo la licencia MIT.
¡Las contribuciones son bienvenidas! Ver la Guía del Colaborador
Se amable. Vea nuestro código de conducta