Поскольку прошло уже несколько лет, и это не представляется возможным (используя только npm), решение этой проблемы - использовать Nexus Repository Manager. (от Sonatype). Nexus поддерживает несколько репозиториев, позволяет вам их заказывать, а также прокси / кеши для повышения скорости.
Существуют бесплатная версия, а также про / платная версия. Функция, поддерживающая это, описана по адресу:
https://help.sonatype.com/repomanager3/node-packaged-modules-and-npm-registries.
Соответствующая информация дублируется ниже, поэтому, если / когда вышеуказанный URL / ссылка перестанет работать, информация все еще будет здесь.
Группа репозиториев - это рекомендуемый способ предоставить пользователям доступ ко всем вашим репозиториям реестров npm из менеджера репозиториев без необходимости дальнейшей настройки на стороне клиента. Группа репозиториев позволяет вам предоставлять агрегированный контент нескольких прокси и размещенных репозиториев с одним URL-адресом для npm и других инструментов.
Он позволяет создавать частные реестры npm
Частный реестр npm может использоваться для загрузки ваших собственных пакетов, а также сторонних пакетов.
А также
Чтобы уменьшить количество дублирующих загрузок и повысить скорость загрузки для ваших разработчиков и серверов CI, вам следует проксировать реестр, размещенный на https://registry.npmjs.org . По умолчанию npm обращается к этому реестру напрямую. Вы также можете использовать прокси для любых других реестров, которые вам нужны.
Итак, краткий список вещей, которые вы должны сделать, чтобы это работало:
Установить Nexus
Создайте локальное / частное репо (или укажите на свое частное репо на другом сервере)
Создайте ГРУППУ, в которой перечислены ваше частное репо и публичное репо.
Настройте файл $ HOME / .npmrc так, чтобы он указывал на только что созданную «ГРУППУ».
Опубликуйте свои частные пакеты npm в локальном репо.
Теперь пользователи могут запускать однократную настройку.
npm config set registry https://nexus/content/groups/GROUP
- Затем пользователи могут устанавливать как общедоступные, так и частные пакеты через
npm install
.
npm install my-private-package
npm install lodash any-other-public-package
И ваши общедоступные и частные пакеты могут быть установлены с помощью простого npm install
команды. Nexus находит пакет, просматривая каждое репо, настроенное в группе, и возвращает результаты. Таким образом, npm по-прежнему считает, что существует только один реестр, но за кулисами используется несколько репозиториев.
ВАЖНОЕ ПРИМЕЧАНИЕ. Когда вы публикуете свои компоненты, вам необходимо указать npm publish --registry https://nexus/content/repositories/private-repo my-private-package
команду, чтобы ваш пакет был опубликован в правильном репозитории.