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 GitHub Packages y para usar los paquetes almacenados en GitHub Packages como dependencias en un proyecto npm.

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

En este artículo

Autenticar a GitHub Packages

Necesitas de un token de acceso para publicar, instalar, y borrar paquetes en GitHub Packages. Puedes utilizar un token de acceso personal para autenticarte con tu nombre de usuario directamente en GitHub Packages o en la API de GitHub. Puedes utilizar un GITHUB_TOKEN para autenticarte utilizando un flujo de trabajo de GitHub Actions.

Autenticando 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 obtener más información, consulta "Acerca de GitHub Packages."

Puedes autenticarte en GitHub Packages 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.

$ npm login --registry=https://npm.pkg.github.com
> Username: USERNAME
> Password: TOKEN
> Email: PUBLIC-EMAIL-ADDRESS

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 GitHub Packages 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, GitHub Packages 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 usando 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 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 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 GitHub Packages para que GitHub Packages 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 GitHub Packages. 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 GitHub Packages. Para obtener más información, consulta "Autenticar a GitHub Packages."

  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 GitHub Packages 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 GitHub Packages 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 package.json del 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" 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.

GitHub Packages 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 GitHub Packages 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 GitHub Packages 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 GitHub Packages. Cuando enrutas todas las solicitudes de paquete a través de GitHub Packages, 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 GitHub Packages. Para obtener más información, consulta "Autenticar a GitHub Packages."

  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 GitHub Packages 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 GitHub Packages 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 GitHub Packages, 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 GitHub Packages de una organización. Si deseas enrutar las solicitudes de paquetes a varias organizaciones y usuarios, puedes agregar líneas adicionales a tu archivo .npmrc, al reemplazar OWNER por el nombre de la cuenta de usuario o de organización a la que pertenece el repositorio que contiene tu proyecto. 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.com/OWNER
@OWNER:registry=https://npm.pkg.github.com
@OWNER:registry=https://npm.pkg.github.com

Leer más

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos