Конвейер активов полного стека для узла, соединения / экспресса и брокколи
Во-первых, я должен признаться, что я нуб на узле. Я использовал ASP.NET, затем PHP, а затем Django. Несмотря на это, я нашел узел глоток свежего воздуха. Эта проблема также не является строго проблемой узла, но мне нужен конкретный ответ для узла.
У меня есть экспресс-сервер и угловой интерфейс. Шаблоны на стороне сервера находятся на Swig и в настоящее время служат только для страниц с ошибками и страницы индекса. В основном угловые шаблоны составляют основную часть.
То, с чем я борюсь, хотя бы только при решении, как это сделать, - это получение эффективного рабочего потока для конвейера активов. Серверные шаблоны должны быть в состоянии внедрить ваниль ресурсов во время разработки и тестирования. То же самое касается шаблонов на стороне клиента во время тестирования. По сути, работа со статическим промежуточным ПО Express должна быть опцией без какой-либо настройки (возможно, с некоторым помощником в ресурсах на стороне сервера). Таким образом, git clone -> grunt -> Viola.
Однако, во время постановки и производства, я хотел бы, чтобы файлы на стороне сервера оставались ванильными. Помощники шаблонов могут анализировать файл манифеста, указывающий на кеш-ссылки, которые могут быть кешированы (возможно, и путь CDN). Как сделать ссылку от имени логического комплекта актива до готового к использованию актива для меня загадкой, при этом сохраняя прозрачность разработки.
Шаблоны на стороне клиента могут быть уменьшены, объединены, внедрены или как угодно, так как они будут сохранены в некоторой папке dist для загрузки. Важно, чтобы все дерево зависимостей (изображения, шрифты, CSS, JS) было "экспортировано" в папку dist.
Развертывание будет тогда: отправка серверного кода на сервер и запуск. И отправка клиентской папки dist на какой-либо ресурсный хост (CDN, nginx, другой узел, возможно, даже статический)
Что мой вопрос (ы) тогда на самом деле (являются):
- Возможен ли этот рабочий процесс только с такими инструментами, как брокколи / гулп / хрюканье? Я пробовал connect-assets, но я не хочу соответствовать заранее заданному пути к папке. Также инструмент Cli не производил другие статические активы. Возможно, я не понимаю инструмент.
- Я придерживаюсь правильного подхода?
Я добавил к обсуждению брокколи, касающемуся использования файла манифеста: https://github.com/mjackson/broccoli-rev/issues/1
Изменить: я забыл упомянуть, что я использую бауэр, поэтому активы должны быть извлечены из произвольных (URL-адреса тоже может быть) мест.
1 ответ
Я думаю, что angular-fullstack - это то, что вы хотите. Даже если вы не используете его, он выполняет почти все, что вы ищете.
Единственное, чего вам может не хватить - это развертывание. Он имеет встроенную поддержку для развертывания Heroku и OpenShift. Вы можете использовать что-то вроде grunt-ssh или grunt-deploy для других сценариев развертывания.