Dato che sono passati un paio d'anni e non sembra possibile farlo (usando solo npm), una soluzione a questo problema è usare Nexus Repository Manager (da Sonatype). Nexus supporta più repository, ti consente di ordinarli e anche proxy / cache per migliorare la velocità.
Esistono una versione gratuita e una versione pro / a pagamento. La funzione che supporta questo è descritta su:
https://help.sonatype.com/repomanager3/node-packaged-modules-and-npm-registries
Le informazioni pertinenti sono duplicate di seguito, quindi se / quando l'URL / collegamento sopra smette di funzionare, le informazioni sono ancora qui.
Un gruppo di repository è il modo consigliato per esporre tutti i repository dei registri npm dal gestore repository ai propri utenti, senza che sia necessaria alcuna ulteriore configurazione lato client. Un gruppo di repository consente di esporre il contenuto aggregato di più proxy e repository ospitati con un URL a npm e altri strumenti.
Ti permette di creare registri npm privati
Un registro privato npm può essere utilizzato per caricare i propri pacchetti e pacchetti di terze parti.
E
Per ridurre i download duplicati e migliorare la velocità di download per sviluppatori e server CI, è necessario eseguire il proxy del registro ospitato su https://registry.npmjs.org . Per impostazione predefinita, npm accede direttamente a questo registro. Puoi anche eseguire il proxy di tutti gli altri registri richiesti.
Quindi un rapido elenco puntato di cose che fai per farlo funzionare è:
Installa Nexus
Creare un repository locale / privato (o puntare al repository privato su un altro server)
Crea un GRUPPO che elenca il tuo repository privato e il repository pubblico.
Configura il tuo file $ HOME / .npmrc in modo che punti al "GRUPPO" appena creato.
Pubblica i tuoi pacchetti npm privati nel repository locale.
Gli utenti ora possono eseguire una configurazione singola.
npm config set registry https://nexus/content/groups/GROUP
- Quindi gli utenti possono installare pacchetti sia pubblici che privati tramite
npm install
.
npm install my-private-package
npm install lodash any-other-public-package
E i tuoi pacchetti sia pubblici che privati possono essere installati con un semplice npm install
comando. Nexus trova il pacchetto che cerca ciascun repository configurato nel gruppo e restituisce i risultati. Quindi npm pensa ancora che ci sia un solo registro ma dietro il sipario ci sono più repository utilizzati.
NOTA IMPORTANTE: quando si pubblicano i componenti, è necessario specificare il npm publish --registry https://nexus/content/repositories/private-repo my-private-package
comando in modo che il pacchetto sia pubblicato nel repository corretto.