Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.

Configurar npm para usar con Paquetes de GitHub

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

Paquetes de GitHub is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, Servidor de GitHub Enterprise 2.22, and GitHub One.


Paquetes de GitHub no está disponible para repositorios privados que pertenezcan a cuentas que utilicen planes tradicionales por repositorio. Paquetes de GitHub se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, GitHub Enterprise Cloud, y GitHub One. Para obtener más información, consulta la sección "Productos de GitHub".

En este artículo

¿Te ayudó este documento?

Nota: Cuando instalas o publicas una imagen de docker, Paquetes de GitHub no es compatible con capas externas, tales como imágenes de Windows.

Autenticar a Paquetes de GitHub

Necesitas de un token de acceso para publicar, instalar, y borrar paquetes en Paquetes de GitHub. Puedes utilizar un token de acceso personal para autenticarte con tu nombre de usuario directamente en Paquetes 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.

To authenticate using a GitHub Actions workflow:

  • For package registries (PACKAGE-REGISTRY.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME), you can use a GITHUB_TOKEN.
  • For the container registry (ghcr.io/OWNER/IMAGE-NAME), you must use a personal access token.

Autenticando con un token de acceso personal

Debes utilizar un token de acceso personal con los alcances adecuados para publicar e instalar paquetes en Paquetes de GitHub. Para obtener más información, consulta "Acerca de Paquetes de GitHub".

Puedes autenticarte en Paquetes 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 al agregar tu token de acceso personal a tu archivo ~/.npmrc, edita el archivo ~/.npmrc para que tu proyecto incluya la siguiente línea, al reemplazar TOKEN por tu token de acceso personal. Crea un nuevo archivo ~/.npmrc si no existe uno.

//npm.pkg.github.com/:_authToken=TOKEN

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.

"repository" : {
    "type" : "git",
    "url": "ssh://git@github.com/OWNER/REPOSITORY.git",
    "directory": "packages/name"
  },

Autenticando con el GITHUB_TOKEN

Si estás utilizando un flujo de trabajo de GitHub Actions, puedes utilizar un GITHUB_TOKEN para publicar y consumir paquetes en Paquetes de GitHub sin que necesites almacenar y administrar un token de acceso personal. Para obtener más información, consulta la sección "Autenticarse con el GITHUB_TOKEN".

Publicar un paquete

De forma predeterminada, Paquetes de GitHub publica un paquete en el repositorio de GitHub que especifiques en el campo nombre del archivo package.json. Por ejemplo, publicarías un paquete denominado @my-org/test al repositorio de GitHub My-org/test. 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. Paquetes de GitHub solo admite paquetes npm con alcance definido. Los paquetes definidos 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 Paquetes de GitHub para que Paquetes 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 Paquetes de GitHub. Dado que las letras mayúsculas no son compatibles, debes usar minúscula para el propietario del repositorio si el nombre de usuario o el nombre de la organización de GitHub contiene letras mayúsculas.

  1. Autentícate en Paquetes de GitHub. Para obtener más información, consulta "Autenticar a Paquetes 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 Paquetes 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.

    registry=https://npm.pkg.github.com/OWNER
  3. Agrega el archivo .npmrc al repositorio en donde Paquetes de GitHub pueda encontrar tu proyecto. Para obtener más información, consulta la sección "Agregar un archivo a un repositorio utilizando la línea de comandos".

  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.

    "publishConfig": {
        "registry":"https://npm.pkg.github.com/"
      },
  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.

Paquetes de GitHub coincidirá con el repositorio en base a la URL, en lugar de basarse en el nombre del paquete. Si almacenas el archivo package.json fuera del directorio raíz de tu repositorio, puedes usar el campo directory (directorio) para especificar la ubicación donde Paquetes de GitHub puede encontrar los archivos package.json.

"repository" : {
    "type" : "git",
    "url": "ssh://git@github.com/OWNER/REPOSITORY.git",
    "directory": "packages/name"
  },

Instalar un paquete

Puedes instalar paquetes desde Paquetes 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 Instalar paquetes de otras organizaciones

También debes agregar el archivo .npmrc a tu proyecto por lo que todas las solicitudes de instalación de paquetes pasarán por Paquetes de GitHub. Cuando enrutas todas las solicitudes de paquete a través de Paquetes de GitHub, puedes usar paquetes con alcance definido y sin alcance definido de npmjs.com. Para obtener más información, consulta "npm-scope" en la documentación de npm.

  1. Autentícate en Paquetes de GitHub. Para obtener más información, consulta "Autenticar a Paquetes 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 Paquetes 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.

    registry=https://npm.pkg.github.com/OWNER
  3. Agrega el archivo .npmrc al repositorio en donde Paquetes de GitHub pueda encontrar tu proyecto. Para obtener más información, consulta la sección "Agregar un archivo a un repositorio utilizando la línea de comandos".

  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 Paquetes 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 Paquetes de GitHub de una organización. Por defecto, solo puedes usar paquetes de Paquetes de GitHub de una organización. Dado que las letras mayúsculas no son compatibles, debes usar minúscula para el propietario del repositorio si el nombre de usuario o el nombre de la organización de GitHub contiene letras mayúsculas.

registry=https://npm.pkg.github.comOWNER
@OWNER:registry=npm.pkg.github.com
@OWNER:registry=npm.pkg.github.com

Leer más

¿Te ayudó este documento?