Trabajar con el registro de npm

Puedes configurar npm para publicar paquetes en Registro del paquete de GitHub y para usar los paquetes almacenados en Registro del paquete de GitHub como dependencias en un proyecto npm.

el Registro del paquete de GitHub se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, Nube de GitHub Enterprise, GitHub Enterprise Server, y GitHub AE.

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.

Límites para las versiónes de npm publicadas

Si estableces más de 1,000 versiones de paquetes de npm en el Registro del paquete de GitHub, 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 la sección "Borrar un paquete" o Contactar a Soporte".

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.

  1. Autentícate en Registro del paquete de GitHub. Para obtener más información, consulta "Autenticar a Registro del paquete de GitHub."

  2. 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. Reemplaza OWNER 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
  3. 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."

  4. 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 campo name (nombre) de tu package.json debería ser @my-org/test.

  5. Verifica el campo repository en el package.json. de tu proyecto. El campo repository debe coincidir con la URL de tu repositorio de GitHub. Por ejemplo, si la URL de tu repositorio es github.com/my-org/test, entonces el campo de repositorio debe ser git://github.com/my-org/test.git.

  6. 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.

  1. 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/"
     },
  2. Verifica el campo repository en el package.json. de tu proyecto. El campo repository debe coincidir con la URL de tu repositorio de GitHub. Por ejemplo, si la URL de tu repositorio es github.com/my-org/test, entonces el campo de repositorio debe ser git://github.com/my-org/test.git.

  3. 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.

  1. Autentícate en Registro del paquete de GitHub. Para obtener más información, consulta "Autenticar a Registro del paquete de GitHub."

  2. 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. Reemplaza OWNER 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
  3. 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."

  4. 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"
      }
    }
    
  5. 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

Utilizar el registro oficial de NPM

El Registro del paquete de GitHub te permite acceder al registro oficial de NPM en registry.npmjs.com, si tu administrador de GitHub Enterprise Server habilitó esta característica. Para obtener más información, consulta la sección Conectarse al registro oficial de NPM.

Leer más

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.