Как использовать реестр пакетов github только для наших пакетов с ограниченной областью действия, а остальное получить из стандартного npm?

Мы пытаемся использовать реестр пакетов Github для публикации наших частных организационных пакетов, и они работают / этот бит в порядке.

Однако, когда мы пытаемся установить их / использовать во всех наших проектах из реестра github вместе с другими модулями npm с ограниченной областью действия, которые находятся в официальном реестре npm, он выдаст что-то вроде:

error Couldn't find package "@azure/identity" on the "npm" registry.

Я бы предположил, что это нежелательное поведение, поскольку я не могу представить, чтобы вы хотели, чтобы люди использовали реестр пакетов github без npm в качестве восходящего потока в сценариях типа «A или B». Бессмысленно не использовать зависимость от NPM и GPR рядом друг с другом.

Мой npmrc / yarnrc:

registry=https://npm.pkg.github.com/ORG_NAME

OR

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

Подробный вывод показывает, что он действительно пытается получить его с github.

  • Есть ли правильная конфигурация для использования GPR вместе с NPM?
  • То, что я пытаюсь сделать, просто невозможно с помощью георадара, и следует ли мне просто придерживаться NPM?

person SebastianG    schedule 20.11.2019    source источник


Ответы (1)


Вы можете определить в своем файле .npmrc, в какой области какой репозиторий должен использовать npm.

@myscope:registry=https://npm.pkg.github.com

и для всего остального

registry=https://registry.npmjs.org/

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

@myscope:registry=https://npm.pkg.github.com
registry=https://registry.npmjs.org/
person Mert    schedule 20.11.2019
comment
Спасибо, это также работает с Yarn, в официальном синтаксисе документации первая строка была другой, и, кстати, у них есть npm в качестве прокси для пакетов, которые не имеют области видимости. Но пряжа еще слишком тупая, чтобы работать с ними. - person SebastianG; 20.11.2019
comment
@MichaelB Мне не повезло с Yarn. Не могли бы вы поделиться своим решением? - person Luke; 03.02.2020
comment
@ Люк, какой контекст и какую версию пряжи вы используете? это чисто для вашей локальной машины разработчика или где-то в облаке? Пакет github находится в частном репо или общедоступном? он привязан к организации или к вашей личной учетной записи? - person SebastianG; 03.02.2020
comment
Я пытаюсь установить частные пакеты github через yarn во время сборки Travis ci. npm отлично работает с инъекцией токена npm (хотя мне пришлось сделать переменную env видимой, даже если она была в частном репо), yarn, похоже, не соблюдает npmrc или yarnrc. Моя версия пряжи - 1.21.1 - person Luke; 03.02.2020