2015-03-21 2 views
0

Я создал очень большое приложение nodeJs за последние 8 или около того месяцев, и до недавнего времени настройка нашей структуры папок была удачной. Чтобы сделать всю систему более расширяемой и «enterpriseisey», я перерабатываю весь процесс сборки.Использование процесса сборки, такого как Grunt inproduction

Я получил модернизированный файловую систему вида:

| 
+-- Gruntfile.js 
|  
+-- pub 
| | 
| +-- dist 
| | | 
| | +-- assets 
| | | | +-- images/fonts/etc.. 
|  
+-- sites 
| | 
| +-- site1 
| | | 
| | +-- assets 
| | | | +-- images/fonts/etc.. 
| 
| +-- site2 
| | | 
| | +-- assets 
| | | | +-- images/fonts/etc.. 

Каждый из сайтов (site1, site2) находятся на их собственном репо и только тянут в случае необходимости. Это позволяет мне не повторять код и наследовать разные сайты друг от друга. Когда приложение запускается, мне просто нужно пройти NODE_SITE site1, а в разработке grunt позаботится обо всем здании/копировании всех активов для меня, помещая все правильные файлы в dist, поэтому я могу использовать их на своем сайте.

Поскольку Grunt не следует использовать в производстве, что может быть альтернативой? Или просто с помощью задачи grunt copy?

+0

Grunt - это в первую очередь инструмент для сборки. С каких пор вы не используете инструменты сборки для производства? Вы можете запустить задачу grunt локально, чтобы создать zip-файл или что-то, что вы можете просто загрузить на каждый сайт, или что-то еще, если вы хотите избежать выполнения задач Grunt на производственном сервере. Или сделайте это как часть сборки сервера CI. – GregL

ответ

0

Грунт должен быть запущен как часть остальной части процесса сборки. Поэтому, если задание по умолчанию вашего файла grunt соответствует среде deve, создайте задачу для среды prod. Эта задача «prod» должна минимизировать JS, CSS и другие вещи, скопировать ресурсы в нужное место и это. Выполните один раз вместе с остальной частью скрипта сборки.