2014-04-07 12 views
5

Come posso sapere quando richiedere all'utente di eseguire npm install se ci sono delle dipendenze impreviste di package.json?Come verificare facilmente le corrette dipendenze di npm installate?

vorrei fare questo, perché se ogni require() fallisce, l'utente riceve un messaggio di errore povero:

module.js:340 
    throw err; 
     ^
Error: Cannot find module 'nopt' 

Ho già cercato di controllare solo per l'esistenza di una directory node_modules, ma questo funziona solo efficacemente per i cloni git freschi. Ho anche provato solo a richiedere npm e ad eseguire npm install come parte del carico, ma è molto pesante.

Spero ci sia una libreria più leggera là fuori che analizza solo package.json e si assicura che i contenuti di node_modules soddisfino i requisiti.

Un'idea era usare process.on('uncaughtException') per catturare solo gli errori di importazione del modulo, ma cercando di vedere se c'è una soluzione "standard" prima.

+0

Scorrere attraverso 'node_modules', analizzare la' versione' nel loro 'package.json' e confrontare con il proprio' package.json'? – jgillich

+0

non c'è un modo efficace per farlo, 'npm install' prende in considerazione tutte le dipendenze dei moduli, non vedo come dovrebbe generare un errore nel caricamento dei moduli nel pacchetto npm. Esistono dipendenze opzionali se questo è ciò che stai cercando. – Gntem

+0

Guarda [grunt-check-dependencies] (https://github.com/mzgol/grunt-check-dependencies/blob/master/tasks/lib/check- dependencies.js). Se usi il grunt, hai praticamente finito. In caso contrario, la sostituzione del file grunt/delle chiamate della console con il nodo fs/console non dovrebbe richiedere molto tempo. –

risposta

0

Non che non v'è modo NPM di farlo, ma appena trovato questo sembra utile:

post sul blog: http://bahmutov.calepin.co/check-dependencies-in-grunt-by-default.html

progetto: https://github.com/bahmutov/deps-ok

+2

Si prega di provare a non pubblicare solo risposte di collegamento, dal momento che il contenuto collegato può essere rimosso in qualsiasi momento. –

+0

@ DavidPärsson non sono sicuro, cosa dovrei fare? copia la descrizione del progetto? Il poster originale chiede esattamente la biblioteca come questa. – dolzenko

+1

Durante la lettura della risposta, non è chiaro per me che il progetto risolva il problema. Sto indovinando che il contenuto dietro il primo collegamento afferma che, ma quel link sembra essere morto. –

2

trovato questo oggi. Non sono sicuro se hai ancora bisogno di questo.

https://www.npmjs.com/package/check-dependencies

npm install check-dependencies --save-dev 

installare questo pacchetto e salvare sul package.json.

require('check-dependencies')(config, callback); 

config è l'oggetto seguente, che viene quindi passato al callback.

{ 
    status: number,  // 0 if successful, 1 otherwise 
    depsWereOk: boolean, // true if dependencies were already satisfied 
    log: array,   // array of logged messages 
    error: array,  // array of logged errors 
} 
0

Se si utilizza GitHub, o almeno ospitare il tuo project.json su GitHub, è possibile utilizzare: https://david-dm.org/

sostituire il nome utente e pronti contro termine.

https://david-dm.org/username/repo.svg 

Poi si può vedere qualcosa di simile https://david-dm.org/bower/bower per identificare il fuori di pacchetti di data.

Problemi correlati