Nota: Este tipo de paquete podría no estar disponible para su instancia, ya que los administradores de sitio pueden habilitar o inhabilitar cada tipo de paquete compatible. Para obtener más información, vea «Configurar la compatibilidad del ecosistema de paquetes para tu empresa».
Límites para las versiónes de npm publicadas
Si estableces más de 1,000 versiones de paquetes de npm en el GitHub Packages, podrías notar que ocurren problemas de rendimiento y de tiempos excedidos durante el uso.
En el futuro, para mejorar el rendimiento del servicio, no podrá publicar más de 1.000 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".
Autenticar a GitHub Packages
Necesitas un token de acceso para publicar, instalar y eliminar paquetes privados, internos y públicos.
Puedes usar un personal access token para autenticarte en GitHub Packages o en la API de GitHub Enterprise Server. Cuando creas un personal access token, 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, 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_TOKEN
para publicar los paquetes asociados con el repositorio del flujo de trabajo.- Un personal access token con, al menos, ámbito de
read:packages
para instalar los paquetes asociados con otros repositorios privados (a los cuales no puede accederGITHUB_TOKEN
).
Autenticación con un personal access token
Debes utilizar un personal access token con los ámbitos adecuados para publicar e instalar paquetes en GitHub Packages. Para obtener más información, vea «Introducción a los paquetes de GitHub».
Puedes autenticar en GitHub Packages con npm si editas el archivo ~/.npmrc por usuario para incluir tu personal access token, o bien iniciando sesión en npm en la línea de comandos con tu nombre de usuario y personal access token.
Para autenticarse agregando su personal access token al archivo ~/.npmrc, edite el archivo ~/.npmrc del proyecto para que incluya la siguiente línea y reemplace NOMBRE DE HOST por el nombre de host de tu instancia de GitHub Enterprise Server y TOKEN por su personal access token. Cree un archivo ~/.npmrc si no existe uno.
Si en la instancia se ha habilitado el aislamiento de subdominios:
//npm.HOSTNAME//:_authToken=TOKEN
Si en la instancia se ha deshabilitado el aislamiento de subdominios:
//HOSTNAME/_registry/npm/:_authToken=TOKEN
Para autenticarse mediante el inicio de sesión en npm, usa el comando npm login
y reemplaza USERNAME por tu nombre de usuario de GitHub, TOKEN por tu personal access token y PUBLIC-EMAIL-ADDRESS por tu 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 más información, vea npm-login
.
Si GitHub Packages no es el registro de paquetes predeterminado para usar npm y quieres usar el comando npm audit
, se recomienda usar la marca --scope
con el espacio de nombres que hospeda el paquete (la cuenta personal u organización que posee el repositorio donde se hospeda el paquete) al autenticarse en GitHub Packages.
Si en la instancia se ha habilitado el aislamiento de subdominios:
$ npm login --scope=@NAMESPACE --auth-type=legacy --registry=https://npm.HOSTNAME/
> Username: USERNAME
> Password: TOKEN
Si en la instancia se ha 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 manera predeterminada, su paquete se publica en el repositorio GitHub que especifique en el campo name
del archivo package.json
. Por ejemplo, podría publicar un paquete denominado @my-org/test
en el repositorio my-org/test
de GitHub. Puede publicar varios paquetes en el mismo repositorio de GitHub si incluye un campo repository
en el archivo package.json
. Para más información, vea "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 alcance definido. Los paquetes con ámbito tienen nombres con el formato @NAMESPACE/PACKAGE-NAME
. 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 es el usuario octocat
y el paquete se denomina test
, asignaría el nombre del paquete con ámbito de la siguiente manera: "name": "@octocat/test"
.
Después de que publiques un paquete, puedes verlo en GitHub. Para obtener más información, vea «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 a dónde dirigir las solicitudes de paquete. El uso de un archivo .npmrc evitar 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, vea "Autenticación en GitHub Packages".
- En el mismo directorio que el archivo
package.json
, crea o edita un archivo.npmrc
para incluir una línea que especifique la URL de GitHub Packages y el espacio de nombres donde se hospeda el paquete. ReemplazaNAMESPACE
por 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 obtener más información, vea «Agregar un archivo a un repositorio».
-
Compruebe el nombre del paquete en el archivo
package.json
del proyecto. El camponame
debe contener el ámbito y el nombre del paquete. Por ejemplo, si el paquete se denomina "test" y va a realizar la publicación en la organización de GitHub "My-org", el camponame
del archivopackage.json
debe ser@my-org/test
. -
Compruebe el campo
repository
en el archivo package.json del proyecto. El camporepository
debe 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, vea "publishConfig" en la documentación de npm.
- Edite el archivo
package.json
del paquete e incluya una entradapublishConfig
.
Si en la instancia se ha habilitado el aislamiento de subdominios:
"publishConfig": {
"registry": "https://npm. HOSTNAME/"
},
Si en la instancia se deshabilitado el aislamiento de subdominios:
"publishConfig": {
"registry": "https://HOSTNAME/_registry/npm/"
},
-
Compruebe el campo
repository
en el archivo package.json del proyecto. El camporepository
debe 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, puedes incluir la URL del repositorio GitHub en el campo repository
del archivo package.json
de cada paquete. Para más información, vea "Creación de un archivo package.json" y "Creación de módulos de Node.js" en la documentación de npm.
Para asegurarte de que la URL del repositorio sea correcta, reemplaza REPOSITORY
por el nombre del repositorio que contiene el paquete que deseas publicar y OWNER
por el nombre de la cuenta personal o de organización en GitHub que posee el repositorio.
GitHub Packages coincidirá con el repositorio en función de la dirección URL, en lugar de basarse en el nombre del paquete.
"repository":"https://HOSTNAME/OWNER/REPOSITORY",
Instalación de un paquete
Puede instalar paquetes desde GitHub Packages si los agrega como dependencias en el archivo package.json
del proyecto. Para más información sobre el uso de package.json
en el proyecto, consulte "Trabajo con package.json" en la documentación de npm.
Por defecto, puedes agregar paquetes de una organización. Para más información, vea "Instalación de paquetes de otras organizaciones".
También tendrá que agregar el archivo .npmrc al proyecto para que todas las solicitudes de instalación de paquete pasen por GitHub Packages. Al enrutar todas las solicitudes de paquete por medio de GitHub Packages, puedes usar paquetes con ámbito y sin ámbito de npmjs.org. Para más información, consulta «npm-scope» en la documentación de npm.
- Autentícate en GitHub Packages. Para obtener más información, vea "Autenticación en GitHub Packages".
- En el mismo directorio que el archivo
package.json
, crea o edita un archivo.npmrc
para incluir una línea que especifique la URL de GitHub Packages y el espacio de nombres donde se hospeda el paquete. ReemplazaNAMESPACE
por 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 obtener más información, vea «Agregar un archivo a un repositorio».
-
Configure
package.json
en el proyecto para usar el paquete que se va a instalar. Para agregar las dependencias de paquete al archivopackage.json
para GitHub Packages, especifique el nombre del paquete de ámbito completo, por ejemplo,@my-org/server
. Para los paquetes de npmjs.com, especifique el nombre completo, como@babel/core
olodash
. ReemplazaORGANIZATION_NAME/PACKAGE_NAME
con 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
Por defecto, solo puedes usar paquetes de GitHub Packages de una organización. Si quiere enrutar las solicitudes de paquete a varias organizaciones y usuarios, puede agregar líneas adicionales al archivo .npmrc, reemplazando HOSTNAME
por 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 en la instancia se ha habilitado el aislamiento de subdominios:
@NAMESPACE:registry=https://npm.HOSTNAME
@NAMESPACE:registry=https://npm.HOSTNAME
Si en la instancia se ha 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 administrador de GitHub Enterprise Server ha habilitado esta característica. Para más información, consulta Conexión al registro oficial de npm.