Publicando um Pacote

Para poder compartilhar seu pacote com outros desenvolvedores ao redor do mundo através do Yarn, você primeiro precisará publicá-lo.

Quando você publica um pacote com Yarn, ele vai para o npm registry que é usado para distribuir pacotes globalmente.

Login no npm

Se você ainda não tiver, você primeiro precisará criar uma conta do npm. Depois de feito isso, você pode configurar seu nome de usuário e e-mail no Yarn.

yarn login

Isso solicitará seu nome de usuário e e-mail. No entanto, ele não vai pedir sua senha. Yarn não guarda sua senha ou qualquer sessões. Quando você vai publicar ou modificar algo no npm, você precisará então digitar sua senha.

Publicando um Pacote

Uma vez que você tenha escrito todo o código em seu pacote, testado ele e está pronto para publicar você pode começar:

yarn publish

Primeiro será solicitado para introduzir uma nova versão para publicar:

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

Em seguida você será solicitado a digitar sua senha do npm:

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

Finalmente, o Yarn publicará o pacote e revogará o token de sessão.

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

Cada vez que você deseja publicar uma nova versão de seu pacote, você pode seguir este mesmo fluxo.

Acessando seu pacote

Seu pacote agora deve estar disponível em https://www.npmjs.com/package/my-new-project e você deve ser capaz de instalá-lo:

yarn add my-new-project

Você também pode ver toda a informação no registro do 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: 'Seu Nome', email: 'voce@examplo.com' } ],
  time:
  { modified: '2018-01-10T11:18:48+00:00',
    created: '2018-01-10T11:18:48+00:00',
    '1.0.0': '2018-01-10T11:18:48+00:00' },
  homepage: 'https://my-new-project-website.com/',
  keywords: [ 'cool', 'useful', 'stuff' ],
  repository:
   { url: 'https://example.com/seu-usuario/my-new-project',
     type: 'git' },
  contributors:
   [ { name: 'Seu Amigo',
       email: 'amigo-email@examplo.com',
       url: 'http://amigo-website.com' },
     { name: 'Outro Amigo',
       email: 'outro-email@examplo.com',
       url: 'https://outro-website.org' } ],
  author: { name: 'Seu Nome', email: 'voce@examplo.com' },
  bugs: { url: 'https://github.com/voce/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: {} }