有一个父文件夹(gulp 模块),它有一些子文件夹(gulp 模块)。我想通过父级的 gulpfile 运行每个子项的默认 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
启动。我需要更改什么才能使任务的多个实例(针对每个子文件夹)运行?
您可以使用gulp-chug
并使用 glob gulp.src()
来访问子 gulpfile,而无需迭代每个子目录,而不是使用 gulp-shell
来访问您的子 gulpfile。如果要运行除 default
以外的任何任务,您甚至可以指定要运行的任务。
此外,gulp-chug
将做所有事情,因此无需依赖一个包来完成您想要做的事情。
gulp-chug
文档中的示例之一几乎涵盖了您正在讨论的确切方案。
古尔普文件.js(父级)
// 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() )
} );