Дата публикации
23 Июня 2021
Дата изменения
23 Июня 2021
Уникальных просмотров
1.866

Оглавление

В этой статье я покажу как начать работать с GitHub Package Registry и npmjs.com одновременно.

Access token

В первую очередь нам нужен access token для прав публикации, установки, и удаления пакетов. Ниже я привел таблицу в которой описаны права и их возможности:

Scope Description Required permission
read:packages Позволяет загружать и устанавливать пакеты из GitHub Packages. read
write:packages Позволяет загружать и публиковать пакеты в to GitHub Packages. write
delete:packages Позволяет удалять пакеты из GitHub Packages. admin
repo Позволяет загружать и удалять пакеты (вместе с write:packages или delete:packages). write or admin

Генерируется токен в Github, в разделе настроек Settings -> Developer settings -> Personal access tokens.

Публикация в GPR

Ключевыми моментами для публикации пакета в GPR — являются два файла package.json и .npmrc. Для начала я покажу стандартный пример файла package.json:

"version": "1.0.0",
"name": "@yourOrganizationOrAccount/yourPackageName",
"description": "description",
"author": {
  "name": "authorName",
  "email": "email",
},
"repository": {
    "type": "git",
    "url": "urlToYourRepository"
},
"publishConfig": {
  "registry": "https://npm.pkg.github.com/yourOrganizationOrAccount"
},

В настройках package.json важно отметить две вещи:

  1. "name": "@yourOrganizationOrAccount/yourPackageName" — указывается именно в таком формате, иначе ваш пакет не будет найден.
  2. publishConfig.registry — эта настройка нужна для того, чтобы пакет публиковался именно в GPR, а не в npmjs.com.

В файле .npmrc нужно прописать способ авторизации по токену и указать откуда npm будет «подсасывать» наши пакеты. Это нужно если у вашего пакета нет внешних зависимостей.

//npm.pkg.github.com/:_authToken=YOUR_TOKEN_HERE
@yourOrganizationOrAccount:registry=https://npm.pkg.github.com

Во всех файлах замените yourOrganizationOrAccount на название вашей организации в Github.

Вы можете добавить сколько угодно точек для подкачки пакетов

@yourOrganizationOrAccount:registry=https://npm.pkg.github.com
@yourOrganizationOrAccount2:registry=https://npm.pkg.github.com
@yourOrganizationOrAccount3:registry=https://npm.pkg.github.com

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

npm publish

И при установке пакетов, npm установит как внешние зависимости, так и внутренние.

Установка пакетов из GPR

На самом деле для установки пакетов мы все уже сделали, вам нужно лишь создать файл .npmrc с нужными данными организации и выполнить команду:

npm i @yourOrganizationOrAccount/yourPackageName@0.0.1

Благодарность автору

Если по какой-либо причине вы хотите поблагодарить автора данного ресурса, вы можете это сделать одним из удобных для вас способов ниже.

Один из самых популярных способов поблагодарить автора, воспользоваться сервисом Яндекс.Деньги.

Время работы: 0,1349 s
Время запросов: 0,1349 s
Количество запросов: 28
Источник: cache