Coffeescript, jade, stylus → js, css-менеджер активов? node.js

Я работаю в coffeescript, jade и stylus.

Мое приложение обслуживает два разных "одностраничных приложения". Для этих приложений я обслуживаю все активы в начальной полезной нагрузке.

Я хочу сгруппировать, скомпилировать и объединить все файлы coffeescript и jade-храмы в единый файл js и файлы стилуса в один ресурс css для каждого приложения с одной страницей.

Затем я могу просто оставить только те /public/js и /public/css, и они всегда будут иметь текущие файлы ресурсов js и css для двух разных приложений.

Кто-нибудь настраивал рабочий процесс, как это раньше? Любые идеи, как я мог это сделать?

Спасибо!!

EDIT: http://blog.fogcreek.com/the-trello-tech-stack/

Через больше исследований я нашел описанный здесь процесс, но они не говорят, как они это сделали.

Ответ 1

Вы можете сделать это с помощью JS довольно просто с помощью Express + Stitch/StitchUp

Пример конфигурации: https://gist.github.com/1094412

Альтернативой является также Interleave:

http://www.distractable.net/coding/javascript-builds-using-interleave

И варианты для промежуточного программного обеспечения стилуса должны отсортировать вас для вашего CSS: http://learnboost.github.com/stylus/docs/middleware.html

Здесь также доступно множество вариантов:

http://toolbox.no.de/search?q=asset

Ответ 2

Я написал для этого приложение node. Это V E R Y просто, но это работает для меня. Код настолько прост (72 строки), что вы можете его настроить в любом случае. Всякий раз, когда вы сохраняете кофе, стилус или нефритовый файл, он преобразуется в js, css или html. Он не заботится об удалении файлов или каких-либо других причудливых вещах. Это не идеально, но, по крайней мере, я точно знаю, как это работает, что облегчает отладку.

https://github.com/Gijsjan/Template-Engine-Watcher

Ответ 3

Я написал проект с открытым исходным кодом (лицензия MIT) для решения этой проблемы:

Джайлс - https://github.com/255BITS/giles

Джайлс создает для вас свои статические активы (Jade, Stylus, CoffeeScript). Он может работать автономно, как веб-сервер, или как модуль подключения. Вы можете добавить поддержку для других языков в Giles легко (см. Страницу github)

Ответ 4

Вы можете использовать конвейер connect-assets, чтобы вытащить скомпилированные активы Jade в свой JavaScript, сделав их зависимыми от файлов CoffeeScript, которые их используют.

У меня есть сообщение в блоге с подробностями → Сопоставление на стороне сервера шаблонов Jade с подключаемыми активами.

Ответ 5

Я рекомендую использовать Grunt, с помощью Grunt вы можете настроить все виды рабочих процессов и задач. Я лично использую mean.io как свой шаблон для большинства моих проектов. У них действительно хороший файл Grunt с большинством задач, необходимых для concat и минимизации css и js в один файл с помощью assetmanager. Среднее .io не использует нефрит или стилус, но вы можете легко добавить те задачи Grunt.