2012-02-10 18 views
5

Niektóre języki środkowe, takie jak Stylus, umożliwiają kompilację na dwa sposoby: poprzez oprogramowanie pośrednie connect lub za pomocą narzędzia CLI. Później może generować statyczne skompilowane zasoby (tj. Pliki .css).Node.js na Heroku: używać oprogramowania pośredniego podczas programowania, ale zasoby statyczne podczas produkcji?

Dlatego chcę używać oprogramowania pośredniego w trybie programowania, ale zasoby statyczne podczas produkcji. Wiem, że mogę użyć app.configure('developmen'...), aby zapytać express (nie), aby użyć niektórych middleware w trybie programowania.

W środowisku IaaS, takim jak Amazon EC2, mogę uruchomić prosty skrypt powłoki, aby automatycznie ponownie skompilować wszystkie moje zasoby. Ale co powiesz na PaaS, a konkretnie Heroku? Jak mogę powiedzieć, gdzie są moje .styl i gdzie należy wygenerować .css?

Odpowiedz

0

Możesz zajrzeć do https://github.com/adunkman/connect-assets. Buforuje wszystkie wbudowane pliki javascript lub css (ma wbudowaną obsługę rysika do rysika), jeśli je podasz build:true.

Możesz ignorować snapsy (jak np. Javascript zawiera system), jeśli nie jesteś zainteresowany, chociaż lubię go używać. #= require_tree app i uwzględnisz wszystkie pliki js w tym katalogu. W fazie rozwojowej otrzymujesz oddzielne skrypty do łatwego debugowania.

Największą wadą serwowania bezpośrednio z connect-assets na Heroku jest to, że musisz wysłać do Heroku każdą aktualizację kodu klienta, co automatycznie uruchamia ponowne uruchomienie. Skończyło się na tym, że ręcznie budowałem swoje zasoby (za pomocą rysika i snap), a następnie przesyłałem do S3. Jeśli nie musisz często aktualizować kodu klienta, nie jest to jednak duży problem.

0

Możesz spojrzeć na express-cdn, która prześle twoje zasoby do S3 na starcie serwera.

W końcu udało mi się zarejestrować w CloudFlare i okazało się, że nie było to tak szybkie jak korzystanie z CloudFront, ale było bardzo łatwe w konfiguracji i działa lepiej niż wyświetlanie plików zasobów z mojej dyno.

Powiązane problemy