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.