有一个父文件夹(gulp模块),它有一些子文件夹(也是gulp模块)。我想通过父项的gulp文件运行每个子项的默认gulp任务。
我的方法是使用gulp-folders
遍历文件夹,并通过将当前工作目录设置为相应的子项来运行gulp
到gulp-shell
。
var tOptions = {};
[...]
gulp.task('setup-modules', folders('./', function(folder){
tOptions.cwd = folder;
gulp.start('setup-module');
return gulp.src('', {read: false});
}));
gulp.task('setup-module', shell.task([
'gulp'
], tOptions));
似乎只有一个任务setup-module
的实例启动了。我需要更改以获取正在运行的任务的多个实例(对于每个子文件夹)?
答案 0 :(得分:2)
您可以使用gulp-chug
而不是使用gulp-shell
,并将一个glob传递给gulp.src()
来访问您的子gulp文件,从而无需迭代每个子目录。如果您想运行default
以外的任何任务,您甚至可以specify which tasks you would like to run。
此外,gulp-chug
将会做所有事情,因此不需要仅依赖于一个包完成您想要做的事情。
One of the examples from the gulp-chug
docs几乎覆盖了您正在讨论的确切场景。
// This example was taken from the gulp-chug docs
var gulp = require( 'gulp' );
var chug = require( 'gulp-chug' );
gulp.task( 'default', function () {
// Find and run all gulpfiles under all subdirectories
gulp.src( './**/gulpfile.js' )
.pipe( chug() )
} );