有gulp-hub
让你在子文件夹中运行gulpfiles。当您在根文件夹中运行gulp foo
时,它将为每个子模块运行foo
任务。
由于您需要为每个子模块的gulp文件的位置传递一个数组,因此使用glob
软件包可以自动查找哪些子模块以及哪些子模块具有gulpfiles(而不是全部硬编码)。
这是你项目/ 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
你是什么意思“启动所有其他gulpfile.js文件”?你的意思是在你的根文件夹中运行'gulp'时运行所有其他gulpfiles的'default'任务? –
是的,确切地说。感谢比我更具体。 –