Publicar un Paquete

Para compartir tu paquete con otros desarrolladores alrededor del mundo a través de yarn, primero debes publicarlo.

Cuando publicas un paquete con Yarn, éste va al registro de npm, el cual es usado para distribuir paquetes globalmente.

Iniciar sesión con npm

Si no lo has hecho aún, primero debes crear una cuenta de npm. Una vez realizado eso, puedes establecer tu nombre de usuario y correo electrónico en Yarn.

yarn login

Esto te pedirá su nombre de usuario y correo electrónico. Sin embargo, no te pedirá su contraseña. Yarn no guarda tu contraseña ni ninguna sesión. Cuando vas a publicar o modificar algo en npm, necesitarás introducir tu contraseña en ese momento.

Publicando tu paquete

Una vez que hayas escrito todo el código en tu paquete, lo hayas probado y estés listo para publicarlo, puedes iniciar el proceso con:

yarn publish

Primero, deberás introducir una nueva versión para publicar:

[1/4] Bumping version...
info Current version: 1.0.0
question New version: _____

Luego, deberás introducir tu contraseña de npm:

[2/4] Logging in...
info npm username: your-npm-username
info npm username: you@example.com
question npm password: ____________

Finalmente, Yarn publicará el paquete y revocará tu token de sesión.

[3/4] Publishing...
success Published.
[4/4] Revoking token...
success Revoked login token.
✨  Done in 10.53s.

Cada vez que desees publicar una nueva versión de tu paquete puedes seguir este mismo flujo.

Accediendo a tu paquete

Tu paquete debe estar disponible en https://www.npmjs.com/package/my-new-project y debes poder instalarlo:

yarn add my-new-project

También puedes ver toda la información en el registro de npm:

yarn info my-new-project
{ name: 'my-new-project',
  description: 'My New Project description.',
  'dist-tags': { latest: '1.0.0' },
  versions: [ '1.0.0' ],
  maintainers: [ { name: 'Your Name', email: 'you@example.com' } ],
  time:
  { modified: '2020-03-16T10:03:30+00:00',
    created: '2020-03-16T10:03:30+00:00',
    '1.0.0': '2020-03-16T10:03:30+00:00' },
  homepage: 'https://my-new-project-website.com/',
  keywords: [ 'cool', 'useful', 'stuff' ],
  repository:
   { url: 'https://example.com/your-username/my-new-project',
     type: 'git' },
  contributors:
   [ { name: 'Your Friend',
       email: 'their-email@example.com',
       url: 'http://their-website.com' },
     { name: 'Another Friend',
       email: 'another-email@example.com',
       url: 'https://another-website.org' } ],
  author: { name: 'Your Name', email: 'you@example.com' },
  bugs: { url: 'https://github.com/you/my-new-project/issues' },
  license: 'MIT',
  readmeFilename: 'README.md',
  version: '1.0.0',
  main: 'index.js',
  files: [ 'index.js', 'lib/*.js', 'bin/*.js' ],
  bin: { 'my-new-project-cli': 'bin/my-new-project-cli.js' },
  dist:
   { shasum: '908bc9a06fa4421e96ceda243c1ee1789b0dc763',
     tarball: 'https://registry.npmjs.org/my-new-project/-/my-new-project-1.0.0.tgz' },
  directories: {} }