Установка приватного пакета из реестра Github Package завершается с ошибкой не найден / не авторизован - PullRequest
0 голосов
/ 23 октября 2019

Я создал и опубликовал частный пакет Github. Пытаясь сначала установить его с помощью пряжи, я сталкиваюсь со следующей проблемой:

Пытаюсь ли я с помощью пряжи или npm, он вообще не может найти пакет, хотя и выполняет точные шаги, задокументированные Github (https://help.github.com/en/github/managing-packages-with-github-package-registry/configuring-npm-for-use-with-github-package-registry).

My .yarnrc:

registry "https://npm.pkg.github.com/OWNER"

При работе с пряжей он постоянно пытается найти пакет в https://registry.yarnpkg.com/@GITHUB_USERNAME вместо реестра, который я ввел выше.

Примечание: в .yarnrc реестры должны быть добавлены в несколько ином синтаксисе:

registry "https://npm.pkg.github.com/"

До сих пор я также начал играть ссочетание .npmrc и .yarnrc конфигураций, но не повезло.

-

РЕДАКТИРОВАТЬ (частично решено)

Я понял, какполучить доступ к пакету, используя npm или - в моем случае - пряжу. Теперь я сталкиваюсь с проблемой Request failed \"401 Unauthorized\", хотя я добавил учетные данные поверх .yarnrc:

//npm.pkg.github.com/:_authToken=AUTH_TOKEN

То же самое в .npmrc тоже не работает.

Ответы [ 2 ]

1 голос
/ 23 октября 2019

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

Независимо от того, используете ли вы npm или пряжу, просто введите следующее .npmrc(пряжа также будет включать это):

registry=https://registry.yarnpkg.com/

@GITHUB_USERNAME:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=AUTH_TOKEN
always-auth=true

Некоторые комментарии:

  • always-auth необходимо, по крайней мере, при использовании пряжи (не тестировалось с использованием npm)
  • Добавление вышеупомянутого в .yarnrc вместо этого не работает. Каким-то образом у пряжи возникают проблемы, когда требуется аутентификация.
  • Теперь вы можете легко установить ваши личные пакеты с yarn add @GITHUB_USERNAME/PACKAGE_NAME или эквивалентом npm.

Надеюсь, это решение работает и в вашем случае,В противном случае, дайте мне знать, с какими проблемами вы сталкиваетесь, и я буду рад поделиться некоторыми исследованиями по этой теме и о том, где решение может скрыться.

0 голосов
/ 31 октября 2019

Что вам нужно сделать, это указать, где искать КАЖДЫЙ пакет, с чем-то вроде этого в вашем .npmrc (я не знаю синтаксис yarn, но он работает с пряжей, когда читает .npmrc):

//registry.npmjs.org/:_authToken=<token-npm-read>
//npm.pkg.github.com/:_authToken=<token-github-package-read>
@foo:registry=https://npm.pkg.github.com
@far:registry=https://registry.npmjs.org

И тогда Yarn будет искать @ foo / mypackage1 в Github, где @ far / mypackage2 будет искать в npmjs. Реестр по умолчанию будет сохраняться для остальных, независимо от того, что вы установили.

...