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, consulte "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ás 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 llegas a este límite, considera borrar las versiones del paquete o contacta a soporte para recibir ayuda. Cuando se aplique este límite, actualizaremos nuestra documentación con una forma de dar soluciones para él. Para obtener más información, consulta "Eliminación y restauración de un paquete" o "Contacto con el soporte técnico".
Autenticar a GitHub Packages
You need an access token to publish, install, and delete private, internal, and public packages.
You can use a personal access token (PAT) to authenticate to GitHub Packages or the GitHub Enterprise Server API. When you create a personal access token, you can assign the token different scopes depending on your needs. For more information about packages-related scopes for a PAT, see "About permissions for GitHub Packages."
To authenticate to a GitHub Packages registry within a GitHub Actions workflow, you can use:
GITHUB_TOKEN
to publish packages associated with the workflow repository.- a PAT with at least
packages:read
scope to install packages associated with other private repositories (whichGITHUB_TOKEN
can't access).
Autenticarte con un token de acceso personal
Debes utilizar un token de acceso personal con los alcances adecuados para publicar e instalar paquetes en GitHub Packages. Para más información, vea "Acerca de GitHub Packages".
Se puede autenticar en GitHub Packages con npm si edita el archivo ~/.npmrc por usuario para incluir tu token de acceso personal, o bien si inicia sesión en npm en la línea de comandos con el nombre de usuario y el token de acceso personal.
Para autenticarse mediante la adición del token de acceso personal al archivo ~/.npmrc, edite el archivo ~/.npmrc del proyecto para incluir la siguiente línea, y reemplace HOSTNAME por el nombre de host de your GitHub Enterprise Server instance y TOKEN por el token de acceso personal. 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 deshabilitado el aislamiento de subdominios:
//HOSTNAME/_registry/npm/:_authToken=TOKEN
Para autenticarse mediante el inicio de sesión en npm, use el comando npm login
y reemplace USERNAME por el nombre de usuario de GitHub, TOKEN por el token de acceso personal y PUBLIC-EMAIL-ADDRESS por la dirección de correo electrónico.
Si GitHub Packages no es el registro de paquetes predeterminado para usar npm y quiere utilizar el comando npm audit
, le recomendamos que use la marca --scope
con el propietario del paquete cuando se autentique en GitHub Packages.
Si en la instancia se ha habilitado el aislamiento de subdominios:
$ npm login --scope=@OWNER --registry=https://npm.HOSTNAME/
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
Si en la instancia se deshabilitado el aislamiento de subdominios:
$ npm login --scope=@OWNER --registry=https://HOSTNAME/_registry/npm/
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
Publicación de un paquete
Nota: Los nombres y ámbitos de los paquetes solo deben usar letras minúsculas.
De forma predeterminada, GitHub Packages publica un paquete en el repositorio de GitHub que especifique en el campo de nombre del archivo package.json. Por ejemplo, podría publicar un paquete denominado @my-org/test
en el repositorio my-org/test
de GitHub. Si ejecutas npm v8.5.3 o una versión posterior, puedes agregar un resumen para la página de descripción del paquete si incluyes un archivo README.md en el directorio del paquete. Para más información, vea "Trabajo con package.json" y "Procedimiento para crear módulos de Node.js" en la documentación de npm.
Puede publicar varios paquetes en el mismo repositorio de GitHub si incluye un campo URL
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 @owner/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, "name": "@codertocat/hello-world-npm"
.
Después de que publiques un paquete, puedes verlo en GitHub. Para más información, vea "Visualización de 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". 2. 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 propietario de la cuenta. ReemplazaOWNER
con el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene el proyecto.Si se habilita el aislamiento de subdominios:
@OWNER:registry=https://npm.HOSTNAME
Si se inhabilita el aislamiento de subdominios:
@OWNER:registry=https://HOSTNAME/_registry/npm
-
Agregue el archivo .npmrc al repositorio donde GitHub Packages pueda encontrar el proyecto. Para más información, vea "Adición de un archivo a un repositorio".
-
Compruebe el nombre del paquete en el archivo package.json del proyecto. El campo
name
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 archivo package.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
. 1. 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 entrada
publishConfig
. 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
. 1. Publique el paquete:
$ npm publish
- Compruebe el campo
Publicar múltiples paquetes en el mismo repositorio
Si quiere publicar varios paquetes en el mismo repositorio, puede incluir la URL del repositorio GitHub en el campo repository
del archivo package.json de cada paquete.
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 de usuario o de organización en GitHub que posee el repositorio.
GitHub Packages coincidirá con el repositorio en base a la 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, vea "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 se pasen por GitHub Packages. Al enrutar todas las solicitudes de paquete por medio de GitHub Packages, puede usar paquetes con ámbito y sin ámbito de npmjs.org. Para más información, vea "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". 2. 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 propietario de la cuenta. ReemplazaOWNER
con el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene el proyecto.Si se habilita el aislamiento de subdominios:
@OWNER:registry=https://npm.HOSTNAME
Si se inhabilita el aislamiento de subdominios:
@OWNER:registry=https://HOSTNAME/_registry/npm
-
Agregue el archivo .npmrc al repositorio donde GitHub Packages pueda encontrar el proyecto. Para más información, vea "Adición de 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 archivo package.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
o@lodash
. Por ejemplo, en el siguiente archivo package.json se usa el paquete@octo-org/octo-app
como una dependencia.{ "name": "@my-org/server", "version": "1.0.0", "description": "Server app that uses the @octo-org/octo-app package", "main": "index.js", "author": "", "license": "MIT", "dependencies": { "@octo-org/octo-app": "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, y reemplazar HOSTNAME por el nombre de host de your GitHub Enterprise Server instance y OWNER por el nombre de la cuenta de usuario u organización que posee el repositorio que contiene el proyecto.
Si en la instancia se ha habilitado el aislamiento de subdominios:
@OWNER:registry=https://npm.HOSTNAME
@OWNER:registry=https://npm.HOSTNAME
Si en la instancia se deshabilitado el aislamiento de subdominios:
@OWNER:registry=https://HOSTNAME/_registry/npm
@OWNER:registry=https://HOSTNAME/_registry/npm
Utilizar el 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, vea Conexión al registro oficial de NPM.