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 usando o Yarn, ele vai para o registro npm, que é usado para distribuir pacotes globalmente.

Login no npm

Se você ainda não tiver, você primeiro precisará criar uma conta no npm. Depois de ter 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. O Yarn não guarda sua senha nem quaisquer sessões. Quando você for publicar ou modificar algo no npm, você precisará então digitar sua senha.

Publicando um pacote

Assim que você tiver escrito e testado todo o código do seu pacote e estiver pronto para publicá-lo, é só executar:

yarn publish

Primeiro, o comando vai pedir para você digitar a nova versão a ser publicada:

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

Em seguida, ele pedirá pela sua senha do npm:

[2/4] Logging in...
info npm username: seu-usuario-npm
info npm username: voce@exemplo.com.br
question npm password: ____________

Por fim, 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ê quiser publicar uma nova versão de seu pacote, você passará por esse mesmo processo.

Acessando seu pacote

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

yarn add meu-novo-projeto

Você também pode ver as informações dele no registro do npm:

yarn info meu-novo-projeto
{ name: 'meu-novo-projeto',
  description: 'Descrição do meu novo projeto.',
  'dist-tags': { latest: '1.0.0' },
  versions: [ '1.0.0' ],
  maintainers: [ { name: 'Seu Nome', email: 'voce@exemplo.com.br' } ],
  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: [ 'legal', 'util', 'rapido' ],
  repository:
   { url: 'https://example.com/seu-usuario/meu-novo-projeto',
     type: 'git' },
  contributors:
   [ { name: 'Seu Amigo',
       email: 'amigo-email@exemplo.com.br',
       url: 'http://site-do-amigo.com' },
     { name: 'Outro Amigo',
       email: 'outro-email@exemplo.com.br',
       url: 'https://outro-site.org' } ],
  author: { name: 'Seu Nome', email: 'voce@exemplo.com.br' },
  bugs: { url: 'https://github.com/voce/meu-novo-projeto/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: {} }