Nota:
Este tipo de paquete podría no estar disponible para tu instancia, ya que los administradores del sitio pueden habilitar o inhabilitar cada tipo de paquete compatible. Para más información, consulta Configurar la compatibilidad del ecosistema de paquetes para tu empresa.
Límites para las versiónes de npm publicadas
Si publica más de 1000 versiones del paquete npm en GitHub Packages, es posible que vea que se producen problemas de rendimiento y tiempos de espera durante el uso.
En el futuro, para mejorar el rendimiento del servicio, no podrá publicar más de 1000 versiones de un paquete en GitHub. Cualquier versión que se publique antes de llegar a este límite aún será legible.
Si llega a este límite, considere borrar las versiones del paquete o ponerse en contacto con soporte t{ecnico para recibir ayuda. Cuando se aplique este límite, actualizaremos nuestra documentación con una forma de dar soluciones para él. Para más información, consulta Borrar y restablecer un paquete o Introducción a los paquetes de GitHub.
Autenticación en GitHub Packages
Nota:
GitHub Packages solo admite la autenticación mediante un personal access token (classic). Para más información, consulta Administración de tokens de acceso personal.
Necesitas un token de acceso para publicar, instalar y eliminar paquetes privados, internos y públicos.
Puedes utilizar un personal access token (classic) para autenticarte en el GitHub Packages o en la API de GitHub. Cuando creas un personal access token (classic), puedes asignar al token diferentes ámbitos en función de tus necesidades. Para más información sobre los ámbitos relacionados con paquetes para un personal access token (classic), consulta Acerca de los permisos para los Paquetes de GitHub.
Para autenticarte en un registro del GitHub Packages dentro de un flujo de trabajo de GitHub Actions, puedes utilizar:
GITHUB_TOKENpara publicar los paquetes asociados con el repositorio del flujo de trabajo.- Un personal access token (classic) con al menos alcance
read:packagespara instalar los paquetes asociados con otros repositorios privados (GITHUB_TOKENpuede utilizarse si el repositorio tiene acceso de lectura al paquete. Consulta Configurar la visibilidad y el control de accesos de un paquete).
Autenticación con personal access token
Debes utilizar un personal access token (classic) con los ámbitos adecuados para publicar e instalar paquetes en GitHub Packages. Para más información, consulta Introducción a los paquetes de GitHub.
Puede autenticarse en GitHub Packages con npm editando su archivo ~/.npmrc de usuario para incluir su personal access token (classic) o iniciando sesión en npm en la línea de comandos con su nombre de usuario y personal access token.
Para autenticarse añadiendo su personal access token (classic) al archivo ~/.npmrc, edite el archivo ~/.npmrc de su proyecto para incluir la siguiente línea, sustituyendo HOSTNAME por el nombre de host de tu instancia de GitHub Enterprise Server y TOKEN por su personal access token. Crea un nuevo archivo ~/.npmrc si no existe.
Si la instancia tiene habilitado el aislamiento de subdominio:
//npm.HOSTNAME//:_authToken=TOKEN
Si tu instancia tiene deshabilitado el aislamiento de subdominios:
//HOSTNAME/_registry/npm/:_authToken=TOKEN
Para autenticarse iniciando sesión en npm, use el npm login comando , reemplazando USERNAME por su GitHub nombre de usuario, TOKEN por personal access token (classic)su y PUBLIC-EMAIL-ADDRESS por su dirección de correo electrónico.
Si usas la versión 9 o una posterior de la CLI de npm e inicias sesión en un registro privado mediante la línea de comandos, o cierras la sesión en él, debes usar la opción --auth-type=legacy para leer los detalles de autenticación de mensajes en lugar de usar el flujo de inicio de sesión predeterminado mediante un explorador. Para obtener más información, vea npm-login.
Si GitHub Packages no es tu registro de paquetes predeterminado para usar npm y quieres usar el comando npm audit, te recomendamos que uses el indicador --scope con el espacio de nombres que aloja el paquete (la cuenta personal u organización que es propietaria del repositorio donde se aloja el paquete) cuando te autentiques en GitHub Packages.
Si la instancia tiene habilitado el aislamiento de subdominio:
$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://npm.HOSTNAME/
> Username: USERNAME
> Password: TOKEN
Si tu instancia tiene deshabilitado el aislamiento de subdominios:
$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://HOSTNAME/_registry/npm/
> Username: USERNAME
> Password: TOKEN
Publicación de un paquete
Nota:
Los nombres y ámbitos de los paquetes solo deben usar letras minúsculas.
De forma predeterminada, el paquete se publica en el GitHub repositorio que especifique en el name campo del package.json archivo. Por ejemplo, publicaría un paquete denominado @my-org/test en el my-org/testGitHub repositorio. Puede publicar varios paquetes en el mismo GitHub repositorio mediante la inclusión de un repository campo en el package.json archivo. Para más información, consulta Publicación de varios paquetes en el mismo repositorio.
Puede configurar la asignación de ámbito del proyecto si usa un archivo .npmrc local en el proyecto o la opción publishConfig en package.json.
GitHub Packages solo admite paquetes npm con ámbito. Los paquetes con ámbito tienen nombres con el formato @NAMESPACE/PACKAGE-NAME. Los paquetes con ámbito siempre comienzan con un símbolo @. Es posible que tenga que actualizar el nombre en package.json para usar el nombre con ámbito. Por ejemplo, si eres el usuario octocat y el paquete se llama test, asignarías el nombre del paquete con alcance de la siguiente manera: "name": "@octocat/test".
Después de que publiques un paquete, puedes verlo en GitHub. Para más información, consulta Visualizar paquetes.
Publicación de un paquete mediante un archivo .npmrc local
Puede usar un archivo .npmrc para configurar la asignación de ámbito del proyecto. En el archivo .npmrc, use la URL y el propietario de la cuenta de GitHub Packages para que GitHub Packages sepa adónde dirigir las solicitudes de paquetes. El uso de un .npmrc archivo impide que otros desarrolladores publiquen accidentalmente el paquete en npmjs.org en lugar de GitHub Packages.
- Autentícate en GitHub Packages. Para obtener más información, consulta Autenticación en GitHub Packages.
- En el mismo directorio que el archivo
package.json, crea o edita un archivo.npmrcpara incluir una línea que especifique la URL de GitHub Packages y el espacio de nombres donde se hospeda el paquete. ReemplazaNAMESPACEpor el nombre de la cuenta de usuario u organización que posee el repositorio que contiene el proyecto.
Si se habilita el aislamiento de subdominios:
@NAMESPACE:registry=https://npm.HOSTNAME
Si se inhabilita el aislamiento de subdominios:
@NAMESPACE:registry=https://HOSTNAME/_registry/npm
-
Agregue el archivo .npmrc al repositorio donde GitHub Packages pueda encontrar el proyecto. Para más información, consulta Agregar un archivo a un repositorio.
-
Compruebe el nombre del paquete en el archivo
package.jsondel proyecto. El camponamedebe contener el ámbito y el nombre del paquete. Por ejemplo, si su paquete se llama "test" y va a publicarlo en la organización "My-org" GitHub, el camponamede supackage.jsondebe ser@my-org/test. -
Comprueba el campo
repositoryenpackage.jsondel proyecto. El camporepositorydebe coincidir con la URL del repositorio GitHub. Por ejemplo, si la URL del repositorio esgithub.com/my-org/test, el campo del repositorio debe serhttps://github.com/my-org/test.git. -
Publique el paquete:
npm publish
Publicación de un paquete mediante publishConfig en el archivo package.json
Puede usar el elemento publishConfig en el archivo package.json para especificar el registro donde quiere publicar el paquete. Para más información, consulta publishConfig en la documentación de npm.
-
Edite el archivo
package.jsondel paquete e incluya una entradapublishConfig.Si la instancia tiene habilitado el aislamiento de subdominio:
"publishConfig": { "registry": "https://npm. HOSTNAME/" },Si tu instancia tiene deshabilitado el aislamiento de subdominios:
"publishConfig": { "registry": "https://HOSTNAME/_registry/npm/" }, -
Comprueba el campo
repositoryenpackage.jsondel proyecto. El camporepositorydebe coincidir con la URL del repositorio GitHub. Por ejemplo, si la URL del repositorio esgithub.com/my-org/test, el campo del repositorio debe serhttps://github.com/my-org/test.git. -
Publique el paquete:
npm publish
Publicar múltiples paquetes en el mismo repositorio
Para publicar varios paquetes al mismo repositorio, puede incluir la dirección URL del GitHub repositorio en el repository campo del package.json archivo para cada paquete. Para más información, consulta Creación de un archivo package.json y Creación de módulos de Node.js en la documentación de npm.
Para asegurarse de que la dirección URL del repositorio es correcta, reemplace por REPOSITORY el nombre del repositorio que contiene el paquete que desea publicar y OWNER por el nombre de la cuenta personal u organización en GitHub ese repositorio.
GitHub Packages coincidirá con el repositorio en función de la dirección URL, en lugar de en función del nombre del paquete.
"repository":"https://HOSTNAME/OWNER/REPOSITORY",
Instalación de un paquete
Puede instalar paquetes desde GitHub Packages agregando los paquetes como dependencias en el package.json archivo del proyecto. Para más información sobre el uso de package.json en el proyecto, consulta Trabajo con package.json en la documentación de npm.
Por defecto, puedes agregar paquetes de una organización. Para más información, consulta Instalación de paquetes de otras organizaciones.
También debe agregar el .npmrc archivo al proyecto para que todas las solicitudes para instalar paquetes vayan a través de GitHub Packages. Cuando enruta todas las solicitudes de paquetes a través de GitHub Packages, puede usar paquetes con y sin ámbito de npmjs.org. Para obtener más información, consulte npm-scope en la documentación de npm.
- Autentícate en GitHub Packages. Para obtener más información, consulta Autenticación en GitHub Packages.
- En el mismo directorio que el archivo
package.json, crea o edita un archivo.npmrcpara incluir una línea que especifique la URL de GitHub Packages y el espacio de nombres donde se hospeda el paquete. ReemplazaNAMESPACEpor el nombre de la cuenta de usuario u organización que posee el repositorio que contiene el proyecto.
Si se habilita el aislamiento de subdominios:
@NAMESPACE:registry=https://npm.HOSTNAME
Si se inhabilita el aislamiento de subdominios:
@NAMESPACE:registry=https://HOSTNAME/_registry/npm
-
Agregue el archivo .npmrc al repositorio donde GitHub Packages pueda encontrar el proyecto. Para más información, consulta Agregar un archivo a un repositorio.
-
Configura
package.jsonen tu proyecto para utilizar el paquete que estás instalando. Para agregar las dependencias del paquete alpackage.jsonarchivo para GitHub Packages, especifique el nombre del paquete de ámbito completo, como@my-org/server. Para los paquetes de npmjs.com, especifique el nombre completo, como@babel/coreolodash. ReemplazaORGANIZATION_NAME/PACKAGE_NAMEcon la dependencia del paquete.{ "name": "@my-org/server", "version": "1.0.0", "description": "Server app that uses the ORGANIZATION_NAME/PACKAGE_NAME package", "main": "index.js", "author": "", "license": "MIT", "dependencies": { "ORGANIZATION_NAME/PACKAGE_NAME": "1.0.0" } } -
Instala el paquete.
npm install
Instalar paquetes de otras organizaciones
De forma predeterminada, solo puede usar GitHub Packages paquetes de una organización. Si desea enrutar solicitudes de paquete a varias organizaciones y usuarios, puede agregar líneas adicionales al .npmrc archivo, reemplazando por HOSTNAME el nombre de host de tu instancia de GitHub Enterprise Server y NAMESPACE por el nombre de la cuenta personal u organización que posee el repositorio que contiene el proyecto.
Si la instancia tiene habilitado el aislamiento de subdominio:
@NAMESPACE:registry=https://npm.HOSTNAME
@NAMESPACE:registry=https://npm.HOSTNAME
Si tu instancia tiene deshabilitado el aislamiento de subdominios:
@NAMESPACE:registry=https://HOSTNAME/_registry/npm
@NAMESPACE:registry=https://HOSTNAME/_registry/npm
Uso del registro oficial de npm
GitHub Packages permite acceder al registro oficial de npm en registry.npmjs.com, si el GitHub Enterprise Server administrador ha habilitado esta característica. Para más información, consulta Conexión al registro oficial de npm.