Nota: El Registro del paquete de GitHub se encuentra actualmente en beta para GitHub Enterprise Server 2.22. Para unirte al beta de tu instancia de GitHub Enterprise Server, utiliza el formato de registro.
Nota: Cuando instalas o publicas una imagen de docker, Registro del paquete de GitHub no es compatible con capas externas, tales como imágenes de Windows.
Autenticarte en Registro del paquete de GitHub
Necesitas de un token de acceso para publicar, instalar, y borrar paquetes en Registro del paquete de GitHub.
Puees utilizar un token de acceso personal (PAT) para autenticarte en el Registro del paquete de GitHub o en la API de GitHub. Cuando creas un token de acceso personal, puedes asignar al token diferentes ámbitos en función de tus necesidades. Para obtener más información sobre los alcances relacionados con los paquetes para un PAT, consulta la sección "Acerca de los permisos para los Paquetes de GitHub".
Para autenticarte en un registro del Registro del paquete de GitHub 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 PAT para instalar los paquetes asociados con otros repositorios privados (a los cuales no puede acceder el
GITHUB_TOKEN
).
Para obtener más información sobre el GITHUB_TOKEN
que se utiliza en los flujos de trabajo de GitHub Actions, consulta la sección "Autenticarse en un flujo de trabajo".
Autenticarte con un token de acceso personal
Debes utilizar un token de acceso personal con los alcances adecuados para publicar e instalar paquetes en Registro del paquete de GitHub. Para obtener más información, consulta "Acerca de Registro del paquete de GitHub".
Puedes autenticarte en Registro del paquete de GitHub con npm al editar tu archivo ~/.npmrc por usuario para incluir tu token de acceso personal o al iniciar sesión en npm en la línea de comando por medio tu nombre de usuario y token de acceso personal.
Para autenticarte agregando tu token de acceso personal a tu archivo ~/.npmrc, edita el archivo ~/.npmrc para que tu proyecto incluya la siguiente línea, reemplazando aHOSTNAME con el nombre de host de tu instancia de GitHub Enterprise Server y a TOKEN con tu token de acceso personal. Crea un nuevo archivo ~/.npmrc si no existe uno.
Para obtener más información acerca de cómo crear un paquete, consulta la documentación maven.apache.org.
//npm.HOSTNAME//:_authToken=TOKEN
Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:
$ npm login --registry=https://npm.pkg.github.com
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
Para autenticarte al iniciar sesión en npm, usa el comando npm login
, reemplaza USERNAME por tu nombre de usuario de GitHub, TOKEN por tu token de acceso personal y PUBLIC-EMAIL-ADDRESS por tu dirección de correo electrónico.
Si el Registro del paquete de GitHub no es tu registro de paquetes predeterminado para utilizar npm y quieres utilizar el comando npm audit
, te recomendamos que utilices el marcador --scope
con el propietario del paquete cuando te autentiques en Registro del paquete de GitHub.
Para obtener más información acerca de cómo crear un paquete, consulta la documentación maven.apache.org.
$ npm login --scope=@OWNER --registry=https://npm.HOSTNAME/
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:
$ npm login --scope=@OWNER --registry=https://HOSTNAME/_registry/npm/
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS
Publicar un paquete
Nota: Los nombres y alcances de los paquetes deben escribirs exclusivamente en minúscula.
De forma predeterminada, Registro del paquete de GitHub publica un paquete en el repositorio de GitHub que especifiques en el campo nombre del archivo package.json. Por ejemplo, si publicas un paquete denominado @my-org/test
en el repositorio de my-org/test
GitHub. Puedes agregar un resumen para la página de descripción del paquete al incluir un archivo README.md en el directorio de tu paquete. Para obtener más información, consulta "Trabajar con package.json" y "Cómo crear módulos Node.js" en la documentación de npm.
Puedes publicar varios paquetes en el mismo repositorio de GitHub al incluir un campo URL
en el archivo package.json. Para obtener más información, consulta "Publicar varios paquetes en el mismo repositorio".
Puedes configurar la asignación de alcance de tu proyecto por medio de un archivo .npmrc local en el proyecto o mediante la opción publishConfig
en package.json. Registro del paquete de GitHub solo admite paquetes npm con alcance definido. Los paquetes con alcance definido tienen nombres con el formato de @owner/name
. Además, siempre comienzan con un símbolo @
. Es posible que tengas que actualizar el nombre en tu package.json para usar el nombre de alcance definido. Por ejemplo, "name": "@codertocat/hello-world-npm"
.
Después de que publiques un paquete, puedes verlo en GitHub. Para obtener más información, consulta "Visualizar paquetes".
Publicar un paquete por medio de un archivo .npmrc local
Puedes usar un archivo .npmrc para configurar la asignación del alcance de tu proyecto. En el archivo .npmrc, usa la URL y el propietario de la cuenta de Registro del paquete de GitHub para que Registro del paquete de GitHub sepa dónde enrutar las solicitudes del paquete. Usar un archivo .npmrc impide que otros programadores publiquen accidentalmente el paquete en npmjs.org en lugar de Registro del paquete de GitHub.
-
Autentícate en Registro del paquete de GitHub. Para obtener más información, consulta "Autenticar a Registro del paquete de GitHub."
-
En el mismo directorio que tu archivo
package.json
, crea o edita un archivo.npmrc
para incluir una línea que especifique la URL de Registro del paquete de GitHub y el propietario de la cuenta. ReemplazaOWNER
con el nombre de la cuenta de usuario u organización a la que pertenezca el repositorio que contiene tu 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
-
Agrega el archivo .npmrc al repositorio en donde Registro del paquete de GitHub pueda encontrar tu proyecto. Para obtener más información, consulta la sección "Agregar un archivo a un repositorio."
-
Verifica el nombre de tu paquete en el package.json de tu proyecto. El campo
name (nombre)
debe contener el alcance y el nombre del paquete. Por ejemplo, si tu paquete se denomina "test" (prueba) y vas a publicar en la organización "My-org" de GitHub, el camponame (nombre)
de tu package.json debería ser@my-org/test
. -
Verifica el campo
repository
en el package.json. de tu proyecto. El camporepository
debe coincidir con la URL de tu repositorio de GitHub. Por ejemplo, si la URL de tu repositorio esgithub.com/my-org/test
, entonces el campo de repositorio debe sergit://github.com/my-org/test.git
. -
Publicar el paquete:
$ npm publish
Publicar un paquete por medio de publishConfig
en el archivo package.json
Puedes usar el elemento publishConfig
en el archivo package.json para especificar el registro en el que deseas que se publique el paquete. Para obtener más información, consulta "publishConfig" en la documentación de npm.
-
Edita el archivo package.json de tu paquete e incluye una entrada de
publishConfig
.Para obtener más información acerca de cómo crear un paquete, consulta la documentación maven.apache.org.
"publishConfig": { "registry":"https://npm.HOSTNAME/" },
Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:
"publishConfig": { "registry":"https://HOSTNAME/_registry/npm/" },
-
Verifica el campo
repository
en el package.json. de tu proyecto. El camporepository
debe coincidir con la URL de tu repositorio de GitHub. Por ejemplo, si la URL de tu repositorio esgithub.com/my-org/test
, entonces el campo de repositorio debe sergit://github.com/my-org/test.git
. -
Publicar el paquete:
$ npm publish
Publicar varios paquetes en el mismo repositorio
Para publicar varios paquetes en el mismo repositorio, puedes incluir la URL del repositorio de GitHub en el campo repository (repositorio)
del archivo package.json para 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.
Registro del paquete de GitHub coincidirá con el repositorio en base a la URL, en lugar de basarse en el nombre del paquete.
"repository":"https://HOSTNAME/OWNER/REPOSITORY",
Instalar un paquete
Puedes instalar paquetes desde Registro del paquete de GitHub al agregar los paquetes como dependencias en el archivo package.json para tu proyecto. Para obtener más información sobre el uso de un package.json en tu proyecto, consulta "Trabajar con package.json" en la documentación de npm.
Por defecto, puedes agregar paquetes de una organización. Para obtener más información, consulta la sección "Instalar paquetes de otras organizaciones".
También necesitas agregar el archivo .npmrc a tu proyecto para que todas las solicitudes para instalar paquetes se pasen por el Registro del paquete de GitHub. Cuando enrutas todas las solicitudes de paquetes a través del Registro del paquete de GitHub, puedes utilizar tanto los paquetes dentro como fuera del alcance de npmjs.org. Para obtener más información, consulta la sección de "npm-scope" en la documentación de npm.
-
Autentícate en Registro del paquete de GitHub. Para obtener más información, consulta "Autenticar a Registro del paquete de GitHub."
-
En el mismo directorio que tu archivo
package.json
, crea o edita un archivo.npmrc
para incluir una línea que especifique la URL de Registro del paquete de GitHub y el propietario de la cuenta. ReemplazaOWNER
con el nombre de la cuenta de usuario u organización a la que pertenezca el repositorio que contiene tu 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
-
Agrega el archivo .npmrc al repositorio en donde Registro del paquete de GitHub pueda encontrar tu proyecto. Para obtener más información, consulta la sección "Agregar un archivo a un repositorio."
-
Configura package.json en tu proyecto para usar el paquete que estás instalando. Para agregar las dependencias de tu paquete al archivo package.json para Registro del paquete de GitHub, especifica el nombre del paquete de alcance completo, como
@my-org/server
. Para paquetes de npmjs.com, especifica el nombre completo, como@babel/core
o@lodash
. Por ejemplo, el archivo package.json a continuación utiliza 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 Registro del paquete de GitHub de una organización. Si te gustaría enrutar las solicitudes de paquetes a organizaciones y usuarios múltiples, puedes agregar líneas adicionales a tu archivo de .npmrc, reemplazando a HOSTNAME con el nombre de host de tu instancia de GitHub Enterprise Server y a OWNER con el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene tu proyecto.
Para obtener más información acerca de cómo crear un paquete, consulta la documentación maven.apache.org.
@OWNER:registry=https://npm.HOSTNAME
@OWNER:registry=https://npm.HOSTNAME
Por ejemplo, los proyectos OctodogApp y OctocatApp publicarán en el mismo repositorio:
@OWNER:registry=https://HOSTNAME/_registry/npm
@OWNER:registry=https://HOSTNAME/_registry/npm