Como já faz alguns anos e não parece possível fazer isso (usando apenas o npm), uma solução para esse problema é usar o Nexus Repository Manager (da Sonatype). O Nexus suporta vários repositórios, permite solicitá-los e também proxies / caches para melhorar a velocidade.
Existe uma versão gratuita e uma versão pro / paga. O recurso que suporta isso está descrito em:
https://help.sonatype.com/repomanager3/node-packaged-modules-and-npm-registries
As informações relevantes são duplicadas abaixo; portanto, se / quando o URL / link acima parar de funcionar, as informações ainda estarão aqui.
Um grupo de repositórios é a maneira recomendada de expor todos os seus repositórios de registros npm do gerenciador de repositórios para seus usuários, sem precisar de nenhuma configuração adicional do lado do cliente. Um grupo de repositórios permite expor o conteúdo agregado de vários repositórios proxy e hospedados com um URL para o npm e outras ferramentas.
Permite criar registros privados da NPM
Um registro npm privado pode ser usado para carregar seus próprios pacotes, bem como pacotes de terceiros.
E
Para reduzir downloads duplicados e melhorar a velocidade de download para seus desenvolvedores e servidores de CI, você deve fazer proxy do registro hospedado em https://registry.npmjs.org . Por padrão, o npm acessa esse registro diretamente. Você também pode fazer proxy de outros registros necessários.
Portanto, uma rápida lista com marcadores do que você faz para que isso funcione é:
Instale o Nexus
Crie um repositório local / privado (ou aponte para seu repositório particular em outro servidor)
Crie um GRUPO que liste seu repositório particular e o repositório público.
Configure o seu arquivo $ HOME / .npmrc para apontar para o "GRUPO" recém-criado.
Publique seus pacotes npm privados no repositório local.
Os usuários agora podem executar uma configuração única.
npm config set registry https://nexus/content/groups/GROUP
- Em seguida, os usuários podem instalar pacotes públicos ou privados via
npm install
.
npm install my-private-package
npm install lodash any-other-public-package
E seus pacotes públicos e privados podem ser instalados através de um npm install
comando simples . O Nexus encontra o pacote pesquisando cada repositório configurado no grupo e retorna os resultados. Portanto, o npm ainda acha que existe apenas um registro, mas atrás da cortina existem vários repositórios sendo usados.
NOTA IMPORTANTE: Ao publicar seus componentes, você precisará especificar o npm publish --registry https://nexus/content/repositories/private-repo my-private-package
comando para que seu pacote seja publicado no repositório correto.