Публікація пакету

Щоб поділитися Вашим пакетом з іншими розробниками по всьому світу через Yarn, Вам спершу потрібно опублікувати його.

Коли Ви публікуєте пакет з Yarn, він зберігаєтсья у реєстрі npm, який використовується для розповсюдження пакетів глобально.

Вхід у npm

Якщо Ви ще не робили, Вам потрібно створити npm аканут. Як тільки Ви завершите, Ви можете вказати Ваше ім’я користувача і емейл у Yarn.

yarn login

Вам буде запропоновано ввести ім’я користувача і емейл. Тим не менш, у Вас не буде запитано Ваш пароль. Yarn не зберігає Ваші паролі чи сесії. Коли Ви будете паблікувати чи змінювати щось в npm, Вам буде потрібно знов ввести Ваш пароль.

Публікація Вашого пакету

Як тільки Ви написати код Вашого пакету, відтестували і готові до публікації, Ви можете це зробити:

yarn publish

Спочатку Вам буде запропоновано ввести нову версію для публікації:

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

Потім Вам буде запропоновано ввести Ваш пароль до npm:

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

Наприкінці, Yarn опублікує пакет і відкличе маркер сесії.

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

Кожного разу коли Ви хочете опублікувати нову версію пакету, Ви повинні наслідувати це процес.

Доступ до Вашого пакету

Ваш пакет повинен бути доступним у https://www.npmjs.com/package/my-new-project і Ви повинні мати змогу встановити його:

yarn add my-new-project

Ви можете також бачити всю його інформацію в реєстрі 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: '2019-12-03T15:40:16+00:00',
    created: '2019-12-03T15:40:16+00:00',
    '1.0.0': '2019-12-03T15:40:16+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: {} }