2016-12-30 4 views
0

Можно ли использовать глоток с подмодулями git, у которых есть собственные настройки gulp и модули npm?Gulp и git subodules

Это идея:

/ Project 
|- Modules 
|-- Grid 
|--- some files and subfolders 
|--- gulpfile.js 
|-- Typography 
|--- some files and subfolders 
|--- gulpfile.js 
| 
| gulpfile.js 

Modules в папку, в которой я хотел бы сохранить неизвестное количество GIT суб-модулей. Каждый из этих подмодулей git будет иметь свои собственные модули gulpfile.js и NPM.

Вопрос: Когда я запускаю процесс gulp из корневой папки, возможно ли, чтобы главный gulpfile.js запустил все другие файлы gulpfile.js из включенных подмодулей git?

+0

Что значит «запустить все остальные файлы gulpfile.js»? Вы имеете в виду запуск задачи 'default' всех остальных gulpfiles при запуске' gulp' в вашей корневой папке? –

+0

Да, точно. Спасибо, что я более конкретный, чем я. –

ответ

1

Есть gulp-hub, который позволит вам запускать gulpfiles в подпапках. Когда вы запустите gulp foo в своей корневой папке, он запустит задачу foo для каждого подмодуля.

Так как вам нужно передать массив с расположением каждого gulpfile каждого субмодуля, проще всего использовать пакет glob, чтобы автоматически находить, какие подмодули есть и какие из них имеют gulpfiles (а не hardcoding все это).

Это то, что ваш Project/gulpfile.js будет выглядеть так:

var glob = require('glob'); 
var hub = require('gulp-hub'); 

hub(glob.sync('./Modules/*/[Gg]ulpfile.js')); 

Теперь при запуске gulp в корневой папке он будет работать default задачу для каждого субмодуля:

[email protected]:~/Project$ gulp 
[08:45:12] Loading Modules/Grid/gulpfile.js 
[08:45:12] Loading Modules/Typography/Gulpfile.js 
[08:45:12] Using gulpfile ~/Project/gulpfile.js 
[08:45:12] Starting 'default'... 
[08:45:12] Starting 'Modules/Grid/gulpfile.js-default'... 
[08:45:12] Finished 'Modules/Grid/gulpfile.js-default' after 129 μs 
[08:45:12] Starting 'Modules/Typography/Gulpfile.js-default'... 
[08:45:12] Finished 'Modules/Typography/Gulpfile.js-default' after 102 μs 
[08:45:12] Finished 'default' after 2.03 ms 
+0

Спасибо за быстрый и конструктивный ответ Свен, я попробую его как можно скорее и буду комментировать после моего теста. –

+0

Можно ли настроить 'gulp watch' таким же образом? –

+0

Просто введите 'gulp watch' в свою корневую папку. Это запустит задачу 'watch' во всех ваших подмодулях. –

Смежные вопросы