2013-09-25 10 views
13

Ho recentemente iniziato a sviluppare per nodo. La società per cui lavoro ha un registro interno di npm. Voglio sapere come utilizzare impostazioni di registro diverse a seconda di dove mi sto sviluppando. Per illustrare, ho una struttura di directory come indicato qui sotto:Registro di sistema npm in base alla directory

~/Code 
| 
| -- My Projects 
| | 
| | -- Proj 1 
| | -- Proj 2 
| 
|-- My Company 
    | 
    |--Proj 1 
    |--Proj 2 

Quando sto sviluppando in uno dei progetti in 'My Project', vorrei che il Registro di NPM per puntare al https://registry.npmjs.org (il Registro di sistema di default). Ma quando mi sto sviluppando in uno dei progetti in "My Company", voglio che il registro di NPM indichi il registro specifico dell'azienda. In questo momento, il mio metodo ingenuo è quello di utilizzare npm config set registry per aggiornare il registro.

risposta

15

Ci sono due casi d'uso distinti per l'utilizzo del registro NPM privato:

  1. Installazione: utilizzare il --reg o --registry bandiera:

    npm install mypackage --reg http://myreg.npmjitsu.com 
    
  2. Publishing: è anche possibile utilizzare --reg o --registry, ma si consiglia vivamente di utilizzare lo.210 impostazione nel file package.json (Vedere: the npm documentation)

    { 
        "publishConfig": { 
        "registry": "http://myreg.npmjitsu.com" 
        } 
    } 
    

    Questo impedisce agli sviluppatori di pubblicare accidentalmente moduli private al Registro pubblico dimenticando il --registry bandiera

Quindi aggiungere publishConfig a tutti il package.json per l'azienda utilizza --registry durante l'installazione dal proprio npm privato.

+0

grazie al suo buon design per avere il flag - reg sui comandi di npm. Questo flag funziona anche su altri comandi? come l'aggiornamento di npm search/npm? – gprasant

+0

Cosa succede quando metti il ​​tuo pacchetto privato nel pacchetto package.json? –

2

Il Registro dovrebbe essere necessario solo durante l'installazione dei pacchetti. È possibile utilizzare questo quando si desidera installare dal registro privato.

npm install packagename --registry https://myregistryurl 

Questo può funzionare troppo ..

npm install https://myregistryurl/packagename 

e basta installare il modo normale quando si utilizza il registro pubblico.

Problemi correlati