2013-05-05 14 views
5

Ci sono dozens of modules disponibili là fuori, molti che svolgono lo stesso compito. Ad esempio, solo the list of router modules contiene 26 moduli.Come scegliere un modulo nodo?

Dato un elenco di moduli, come posso scegliere il migliore per le mie esigenze? Ne sto cercando uno che sia mantenuto, testato e con una certa inerzia, ma non sono sicuro di capire quale di questi moduli soddisfi questi criteri.

+2

Vedere quale progetto GitHub ha il maggior numero di stelle, forchette ed è stato aggiornato un po 'di recente. Oppure cerca l'NPM e ordina per popolarità: https://npmjs.org/search?q=router – Blender

+0

I più popolari sono Connect, Crossroads.js e Journey (in questo ordine). – Blender

+0

Stai chiedendo qual è il migliore o chiedi consiglio in modo da capire meglio come scegliere il migliore? Ti sto chiedendo se la risposta che hai appena ricevuto sia la prima, ma sembra che tu stia chiedendo la seconda. – doppelgreener

risposta

3

Questa risposta si basa su un discorso di qualche settimana fa a San Francisco da Isaac Schlueter (NPM autore, ha assunto la responsabilità node.js da Ryan Dahl, lavora a Joyent - https://twitter.com/izs)

Isacco principale Il progetto ora consiste nel migliorare l'NPM per aiutare le persone a capire la qualità dei pacchetti.

Prima rima sito npmjs.org diventa più intelligente, qui ci sono fattori da considerare (alcuni già elencati da @ 3boll)

Fattori

  1. Numero di download
  2. Come recentemente aggiornato
  3. Cronologia degli aggiornamenti (è stata aggiornata spesso durante un lungo periodo di tempo)
  4. Numero di contributori
  5. Sono noti a sviluppatori e manutentori noti e fidati? [a]
  6. Gli altri pacchetti importanti dipendono da questo? [b]
  7. Il pacchetto è ben documentato e dispone di un proprio sito Web?
  8. Il modulo ha una copertura di prova?

fattori Github: aggiornato: Come di NPM 1.2.20 e in avanti, i moduli senza campi di repository mostreranno manca un campi repository di avvertimento. (Bel tocco per mettere un po 'di pressione sulle persone per impacchettare correttamente i loro moduli.)

  1. Numero di forche
  2. Numero di commit
  3. sono questioni essere chiuso su GitHub, o che hanno gli stessi problemi aperti da molto tempo?

[a] esempio preferito

https://npmjs.org/~tjholowaychuk

[b] per vedere rapidamente dal terminale:

npm view <name_of_module> dependencies

esempio: npm view connect dependencies

https://npmjs.org/browse/depended

avvertimenti:

popolare non vuol dire essere buona. Ci sono molti moduli che non sono molto popolari.

Inaccurato "ultimo aggiornamento". NPM può mostrare che il modulo è stato aggiornato 2 anni fa, ma il github è stato aggiornato la settimana scorsa. Ciò accade se il maintainer non aggiorna il numero di versione come modifiche al codice su github.

+0

Grazie per la risposta approfondita, sarà sicuramente utile. –

+0

Benvenuto! L'ho reso un wiki di comunità in modo che anche altri possano aggiornarlo. –

1

Questo modulo (strato di middleware per Node.js) soddisfa le vostre esigenze:

collegare - Robust high performance middleware framework

Forks circa 500

+1000 commits

ultimo aggiornamento: 7 giorni fa.

569 pacchetti NPM dipende da queste modulo https://npmjs.org/browse/depended

P.S. Non ho nulla a che fare con lo sviluppo del modulo, è solo una mia raccomandazione.

+1

La mia domanda era più su come scegliere il migliore, e non quale router è il migliore. Ma guardando il numero di fork, il numero di commit, l'ultimo aggiornamento e le dipendenze è interessante. Upvoted. –

Problemi correlati