Github Package Registry
Как работать с GitHub Package Registry и npmjs.com одновременно. Инструкция по работе с GitHub Package с нуля до публикации пакета.
Оглавление
В этой статье я покажу как начать работать с 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 важно отметить две вещи:
"name": "@yourOrganizationOrAccount/yourPackageName"
— указывается именно в таком формате, иначе ваш пакет не будет найден.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,1214 s
Количество запросов: 28
Источник: cache