2016-05-10 27 views
5

Ho un sacco di devdepencencies nel mio script npm. npm install richiede alcuni minuti la prima volta, va bene.NPM: installa solo mancante - come velocizzare l'installazione di npm

Ma dal momento che sto effettuando l'integrazione con il server di compilazione TFS, è necessario eseguire l'installazione di npm solo una volta. Dopo di ciò, l'installazione di npm sta solo perdendo tempo perché occorrono 2-3 minuti per determinare solo i pacchetti già installati. Inoltre, sembra sempre reinstallare i pacchetti con -g flag globale, anche se esistente.

Come posso verificare se i pacchetti esistono e, in caso affermativo, saltare l'installazione di npm?

+0

Si sta utilizzando l'agente di creazione ospitato? –

risposta

5

È possibile utilizzare npm-cache come metodo alternativo se si utilizza on-premise build agents per la compilazione.

E 'utile per i processi di build che vengono eseguiti [NPM | gazebo | compositore | JSPM] installare ogni volta come parte del loro processo di generazione. Poiché le dipendenze non cambiano spesso, questo spesso significa tempi di costruzione più lenti. npm-cache aiuta ad alleviare questo problema memorizzando nella cache le dipendenze precedentemente installate sul computer di compilazione. npm-cache può essere un sostituto sostitutivo per qualsiasi script di build che esegua l'installazione di [npm | bower | compositore | jspm] .

Come funziona

Quando si esegue NPM-cache installare [npm | gazebo | JSPM | compositore], in primo luogo cerca package.json, bower.json o composer.json nella corrente directory di lavoro a seconda di quale gestore di dipendenze è richiesto. Quindi calcola l'hash MD5 del file di configurazione e visualizza per un file denominato .tar.gz nella directory della cache ($ HOME/.package_cache per impostazione predefinita). Se il file non esiste, npm-cache utilizza il gestore delle dipendenze installato del sistema per installare le dipendenze. Una volta installate le dipendenze , npm-cache esegue il routing delle dipendenze scaricate di recente e le memorizza nella directory della cache. La volta successiva che npm-cache viene eseguito e vede lo stesso file di configurazione, troverà il tarball nella directory della cache e decomprime le dipendenze nella directory di lavoro corrente di .

E si può anche provare con npm-install-missing.

Tuttavia, se si utilizza VSTS Hosted Build Agent, non è possibile farlo poiché ogni volta che si accoda una build con Hosted Build Agent, per la generazione viene assegnato un agente di compilazione pulito. Ciò significa che non vi è alcun pacchetto di dipendenze installato sull'agente. È necessario eseguire un'installazione completa di npm.

+0

Grazie per averlo spiegato. Vorrei poter utilizzare lo stesso build agent con il mio profilo utente ogni volta. No biggie perché stiamo andando a migrare a TFS interno che funzionerà con npm-cache poiché l'agente è lo stesso ogni build. – TetraDev

Problemi correlati