В Части I мы создали библиотеку компонентов аутентификации с помощью нашего надежного
<HelloWorld />component. В этом посте мы опубликуем нашу библиотеку компонентов в частном реестре Github NPM. Это позволит библиотеке оставаться в вашей организации и использоваться для всех ваших приложений.

1. Создайте токен персонального доступа.

Во-первых, мы перейдем к Создать токен персонального доступа в Github, чтобы читать и писать ваши пакеты.

  1. Вы можете сделать это, перейдя по ссылке:
Github Account -> Settings -> Developer Settings -> 
Personal Access Tokens -> Generate New Token
Note: Private NPM Packages
Select scopes: write:packages, read:packages

2. Нажмите Создать токен и скопируйте токен в буфер обмена.

3. Скопировав токен, в том же каталоге, что и ваш package.json файл, создайте .npmrc файл и добавьте следующую строку, заменив TOKEN вашим личным токеном доступа.

//npm.pkg.github.com/:_authToken={TOKEN}

2. Создайте частный репозиторий в Github.

Создайте частный репозиторий в Github, как обычно, и скопируйте URL-адрес. Мой был бы:

git://github.com/hinammehra/auth-component-library

3. Добавьте publish-config в package.json.

Для успешной публикации вам необходимо внести небольшие изменения в свой package.json.

  • Пока что у вашего package.json должно быть имя вашей папки,
    "name": "auth-component-library". Чтобы опубликовать свой пакет, вам нужно переименовать его в@owner/repo-name. В моем случае это
    "name": "@hinammehra/auth-component-library".
  • "files": папка с нашей сгенерированной библиотекой, то есть папка ./dist.
  • "publishConfig": реестр, в котором вы хотите опубликовать пакет, то есть "registry": "https://npm.pkg.github.com".
  • "repository": URL только что созданного частного репозитория Github.
  • Наконец, если у вас есть следующая строка в package.json, удалите ее. Установка
    "private": true в вашем package.json вообще запрещает его публикацию. Не волнуйтесь, ваш пакет все равно будет опубликован как частная библиотека компонентов и без него.
{
    ...
    "private": true  // remove this line
    ...
}

В конечном итоге ваш package.json должен выглядеть так:

3. Опубликовать в реестре Github.

Попробуйте опубликовать свою библиотеку с помощью следующей команды, и все должно получиться!

$ npm publish

Ваш пакет теперь виден на Github:

https://github.com/<owner>/<repo-name>/packages

4. Использование частной библиотеки компонентов

После публикации нашей частной библиотеки компонентов давайте попробуем использовать ее в приложении React.

$ create-react-app auth-consumer-app
  • Создайте еще один .npmrc в своем потребительском приложении и добавьте следующие строки.
  • Для простоты мой TOKEN аналогичен шагу 1, вам следует создать еще один токен персонального доступа только с правами read: packages.
  • OWNER - владелец вашего пакета, мой hinammehra.
//npm.pkg.github.com/:_authToken={TOKEN}
registry=https://npm.pkg.github.com/{OWNER}

Вот и все!

Теперь попробуйте запустить команду установки:

$ npm install @OWNER/repo-name

Подведение итогов ..