2013-06-03 10 views
11

Ho utilizzato Node.js e npm per alcune settimane con grande successo e ho iniziato a mettere in discussione le migliori pratiche per l'installazione dei moduli locali. Capisco il Global vs Local argument, tuttavia, la mia domanda ha più a che fare con dove collocare un'installazione locale. Diciamo che ho un progetto situato a ~/ProjectA/ che è controllato in versione e lavorato da più sviluppatori. Quando inizialmente giocavo con Node.js e npm, non ero a conoscenza dei percorsi di installazione locali predefiniti e ho semplicemente installato i moduli necessari in un terminale predefinito che ha generato un percorso di installazione di ~/node_modules. Ciò che ha finito per fare è richiedere a tutti gli altri sviluppatori che lavorano al progetto di installare i moduli sulle proprie macchine per eseguire l'applicazione. Avendo visto dove alcuni degli sviluppatori giravano su npm install, sono comunque molto sorpreso che abbia funzionato sulle loro macchine (suppongo si tratti di how Node.js and require() looks for modules), ma inutile dire che ha funzionato.Informazioni sulla posizione di installazione di npm e Node.js per i moduli

Ora che il progetto supera la fase "giocherellando", desidero configurare correttamente la cartella del progetto. Quindi, la mia domanda è, se i moduli devono essere installati su ~/ProjectA/node_modules e quindi essere parte dei file di progetto controllati dalla versione, o dovrebbero continuare a trovarsi in una posizione specifica per lo sviluppatore-macchina ... o non importa davvero?

Sto solo cercando una guida "best practice" su questo e su ciò che gli altri fanno quando si impostano i progetti.

+0

Leggi https://npmjs.org/doc/developers.html. La tua app ha un 'package.json'? –

risposta

9

Penso che la "migliore pratica" qui sia mantenere le dipendenze all'interno della cartella del progetto.
Quasi tutti i progetti di nodi che ho visto finora (sono uno sviluppatore di Node da circa 8 mesi) lo fanno.

Non è necessario il controllo della versione delle dipendenze. Ecco come gestisco i miei progetti Nodo:

  1. mantenere le versioni bloccati nel file package.json, in modo che tutti ottiene la stessa versione di lavoro, o utilizzare il comando npm shrinkwrap nel root del progetto.
  2. aggiungere la cartella node_modules ai tuoi VCS file di ignorare (io uso Git, quindi il mio è .gitignore)
  3. essere felice, il gioco è fatto!
+6

Per assicurarti che tutti abbiano esattamente le stesse versioni delle dipendenze dovresti usare 'npm shrinkwrap' https://npmjs.org/doc/shrinkwrap.html –

+0

Aggiunto alla risposta, grazie – gustavohenke

+1

Quindi sembra che io sia sul giusta traccia. Sembrava logico escludere semplicemente il '' node_modules'' dal controllo di versione, ma non ero chiaro come gestire i pacchetti di tutti. Sembra che sia attraverso il file '' package.json'' o '' npm shrinkwrap'' e che era il collegamento mancante. Grazie per l'aiuto! – Sanuden

Problemi correlati