Ho un servizio in cui voglio consentire agli utenti in fase di installazione di specificare quale motore di persistenza utilizzare, cioè file-based, MongoDB o Redis, e sto cercando un po 'di magia npm in cui si scaricano solo i moduli necessari (nessuno, mongodb o redis, rispettivamente).Posso specificare dipendenze del modulo opzionali in npm package.json?
È possibile? Non riesco a trovare tutte le opzioni diverse da quelle che definisce le dipendenze e devDependencies in package.json, e che non è appropriato per questo.
Si noti inoltre che mentre i moduli mongodb e redis possono essere relativamente piccoli, si consideri un caso alternativo in cui è possibile che sia necessario Java per la comunicazione RMI.
Grazie!
C'è un campo ['optionalDependencies'] (https://docs.npmjs.com/files/package.json#optionaldependencies), ma non è quello che stai cercando. – Scimonster
In realtà penso che sarà sufficiente. Se un MongoDB facoltativa non riesce a installare perché non c'è compilatore C++ o un nodo-JMX opzionale fallisce perché non c'è JRE, allora va bene. Anche la documentazione solo mostra il codice JS, ma è possibile aggiungere ' "optionalDependencies": {}' nel vostro package.json e funziona. Se modifichi qualcosa intorno a questo nella tua risposta, lo segnerò correttamente. – anthonyserious