Конвейер активов полного стека для узла, соединения / экспресса и брокколи

Во-первых, я должен признаться, что я нуб на узле. Я использовал ASP.NET, затем PHP, а затем Django. Несмотря на это, я нашел узел глоток свежего воздуха. Эта проблема также не является строго проблемой узла, но мне нужен конкретный ответ для узла.

У меня есть экспресс-сервер и угловой интерфейс. Шаблоны на стороне сервера находятся на Swig и в настоящее время служат только для страниц с ошибками и страницы индекса. В основном угловые шаблоны составляют основную часть.

То, с чем я борюсь, хотя бы только при решении, как это сделать, - это получение эффективного рабочего потока для конвейера активов. Серверные шаблоны должны быть в состоянии внедрить ваниль ресурсов во время разработки и тестирования. То же самое касается шаблонов на стороне клиента во время тестирования. По сути, работа со статическим промежуточным ПО Express должна быть опцией без какой-либо настройки (возможно, с некоторым помощником в ресурсах на стороне сервера). Таким образом, git clone -> grunt -> Viola.

Однако, во время постановки и производства, я хотел бы, чтобы файлы на стороне сервера оставались ванильными. Помощники шаблонов могут анализировать файл манифеста, указывающий на кеш-ссылки, которые могут быть кешированы (возможно, и путь CDN). Как сделать ссылку от имени логического комплекта актива до готового к использованию актива для меня загадкой, при этом сохраняя прозрачность разработки.

Шаблоны на стороне клиента могут быть уменьшены, объединены, внедрены или как угодно, так как они будут сохранены в некоторой папке dist для загрузки. Важно, чтобы все дерево зависимостей (изображения, шрифты, CSS, JS) было "экспортировано" в папку dist.

Развертывание будет тогда: отправка серверного кода на сервер и запуск. И отправка клиентской папки dist на какой-либо ресурсный хост (CDN, nginx, другой узел, возможно, даже статический)

Что мой вопрос (ы) тогда на самом деле (являются):

  1. Возможен ли этот рабочий процесс только с такими инструментами, как брокколи / гулп / хрюканье? Я пробовал connect-assets, но я не хочу соответствовать заранее заданному пути к папке. Также инструмент Cli не производил другие статические активы. Возможно, я не понимаю инструмент.
  2. Я придерживаюсь правильного подхода?

Я добавил к обсуждению брокколи, касающемуся использования файла манифеста: https://github.com/mjackson/broccoli-rev/issues/1

Изменить: я забыл упомянуть, что я использую бауэр, поэтому активы должны быть извлечены из произвольных (URL-адреса тоже может быть) мест.

1 ответ

Решение

Я думаю, что angular-fullstack - это то, что вы хотите. Даже если вы не используете его, он выполняет почти все, что вы ищете.

Единственное, чего вам может не хватить - это развертывание. Он имеет встроенную поддержку для развертывания Heroku и OpenShift. Вы можете использовать что-то вроде grunt-ssh или grunt-deploy для других сценариев развертывания.

Другие вопросы по тегам