2012-02-10 2 views
5

Некоторые средние языки, такие как Stylus, предоставляют два способа компиляции: через connect промежуточное программное обеспечение или через инструмент CLI. Позднее может генерировать статические скомпилированные активы (т. Е. .css файлов).Node.js на Heroku: используйте промежуточное ПО для разработки, но статические активы на производстве?

Так что я хочу использовать промежуточное программное обеспечение в режиме разработки, но статические активы на производстве. Я знаю, что могу использовать app.configure('developmen'...), чтобы попросить express (не) использовать некоторые средние линии в режиме разработки.

В среде IaaS, как Amazon EC2, я могу запустить простой сценарий оболочки, чтобы автоматически перекомпилировать все мои активы. Но как насчет PaaS, в частности Heroku? Как я могу сказать, где мои .styl и где должен быть создан .css?

ответ

0

Возможно, вы захотите взглянуть на https://github.com/adunkman/connect-assets. Он кэширует любые встроенные файлы javascript или css (имеет встроенную поддержку стилуса стилусом), если вы передадите его build:true.

Если вы не заинтересованы, вы можете игнорировать сокеты (например, систему с поддержкой javascript), хотя мне это нравится. #= require_tree app, и вы включаете все файлы js в этом каталоге. И в разработке вы получаете отдельный скрипт для легкой отладки.

Самый большой недостаток обслуживания непосредственно с помощью подключаемых активов на Heroku заключается в том, что вам необходимо нажать на Heroku для каждого обновления клиентского кода, что автоматически запускает перезапуск. Я закончил вручную создавать свои активы (стилусом и сокетами), а затем загружать на S3. Если вам не нужно часто обновлять код клиента, это не проблема.

0

Вы можете посмотреть express-cdn, который загрузит ваши активы на S3 при запуске сервера.

Что я в итоге делал, подписываясь на CloudFlare, и обнаружил, что это не так быстро, как использование CloudFront, но его было очень легко настроить, и оно работает лучше, чем обслуживание файлов активов из моего динамического процессора.