2013-11-04 10 views
5

Ho studiato Nodo da un paio di mesi e ora ho un'applicazione complessa. Il mio problema è che mi piacerebbe renderlo riutilizzabile, e dato che ero un noob completo, non ho pensato a questo fin dall'inizio.flusso di lavoro appropriato per la distribuzione dell'app nodo

quello che ho:

Un complesso nodo/app Express in esecuzione come demone con PM2.

  • un sacco di bambino elabora gli script, alcuni in Node, e alcuni utilizzano casperjs/phantomjs

  • un file di configurazione per le credenziali db, porta del server, ecc

  • molte dipendenze NPM, un po ' per l'app stessa, alcuni utilizzati solo dai processi figli. L'app funziona perfettamente, ogni percorso è memorizzato nel file di configurazione, quindi la distribuzione non dovrebbe essere troppo difficile.

  • tutte le dipendenze NPM nel file package.json

Quello che mi piacerebbe fare:

  • Conservare l'applicazione su un repo GIT così posso installato rapidamente su un Istanza EC2.
  • Installa pm2, phantomjs/casperjs, tutti i node_modules e crea l'arborescenza dell'app (include alcune cartelle vuote per i file creati da app) in modo semplice, così le persone che non conoscono l'app possono ottenere in funzione e veloce.

La mia domanda:

  • Devo aggiungere i node_modules al mio git repo?

  • Come posso integrare il deployment di app, l'installazione di dipendenze e l'installazione di pm2, phantom e casper nel modo più semplice possibile? Non mi interessa fare una sceneggiatura ma non so da dove iniziare o le migliori pratiche. La maggior parte di ciò che vedo sul web riguarda nodejitsu/heroku e non si applica.

i miei difetti:

  • Nuovo per Git
  • non hanno seguito linee guida per lo sviluppo, come tutto è cominciato come un progetto giocattolo.

Spero che il mio problema sia comprensibile, grazie a tutti!

EDIT:

Finora ho:

Ancora cercando di capire come includere le dipendenze esterne.

risposta

3

Un modo per distribuire potrebbe essere quella di aggiungere un elenco di installazione di comandi:

  1. repository clone
  2. installare le dipendenze apt-get install npm ...
  3. installare nodo moduli globali npm install -g pm2
  4. installare le dipendenze nodo npm install e npm update
  5. copia config.example.json a config.json e modifica i t alle vostre esigenze
  6. inizio app pm2 index.js

La cartella node_modules non deve essere aggiunto il repo git. È necessario aggiungere tutte le dipendenze dei nodi del progetto al file package.json e npm install/npm update dovrebbe fare il resto.

+0

E le dipendenze non-nodo? – xShirase

+0

È possibile aggiungerli a 'apt-get install' o semplicemente aggiungere un altro passaggio prima di' pm2 index.js' e mostrare come installare tali dipendenze. – cspiegl

+0

Sì, è quello che ho fatto, con un semplice script bash per rendere le cose più fluide. Thankks! – xShirase

0

È possibile utilizzare Capistrano per eseguire facilmente tutte le attività di distribuzione. È scritto in Ruby, ma puoi usarlo per implementare tutto ciò che vuoi, incluse le app Node.js.

È possibile trovare molto examples e integration modules.