2012-02-10 6 views
5

Alcune lingue intermedie, ad esempio Stylus, offrono due metodi di compilazione: tramite il middleware connect o tramite lo strumento CLI. Più avanti può generare asset compilati statici (cioè file .css).Node.js su Heroku: usa il middleware per lo sviluppo, ma le risorse statiche in produzione?

Quindi voglio utilizzare il middleware in modalità sviluppo ma le risorse statiche in produzione. So che posso usare app.configure('developmen'...) per chiedere a express (non) di usare alcuni middleware in modalità sviluppo.

In un ambiente IaaS, come Amazon EC2, posso eseguire uno script di shell semplice per ricompilare automaticamente tutte le mie risorse. Ma che ne dici di PaaS, in particolare di Heroku? Come posso sapere dove sono i miei .styl e dove deve essere generato .css?

risposta

0

Si consiglia di dare un'occhiata a https://github.com/adunkman/connect-assets. Memorizza nella cache qualsiasi file javascript o css (ha il supporto incorporato dello stilo per lo stilo) se lo passi build:true.

Se non si è interessati, è possibile ignorare i noduli (sistema javascript include pignoni), anche se mi piace usarlo. #= require_tree app e includi tutti i file js in quella directory. E in fase di sviluppo, si ottengono script separati inclusi per un facile debug.

Il più grande svantaggio di servire direttamente con le risorse di connessione su Heroku è che è necessario inviare push a Heroku per ogni aggiornamento al codice client, che attiva automaticamente un riavvio. Ho finito per costruire manualmente le mie risorse (con lo stilo e gli snodi), quindi caricando su S3. Se non è necessario aggiornare il codice client spesso, non è comunque un grosso problema.

0

È possibile dare un'occhiata a express-cdn, che caricherà le risorse su S3 all'avvio del server.

Quello che ho dovuto fare era iscrivermi a CloudFlare, e ho scoperto che non era veloce come usare CloudFront, ma era molto facile da configurare e funziona meglio di servire file di asset dal mio banco prova.