Проблема: я хочу поддерживать "коллекции" файлов. Это поможет с временем сборки и гибкостью. например, каждый раз, когда я редактирую файл app.js, я не хочу перекомпилировать все мои загрузочные файлы Twitter.
Я могу, конечно, добиться этого с помощью двух задач и 2-х часовых деклараций - проблема в том, что задачи идентичны, кроме массива файлов. В идеале я хотел бы передать их как параметры в объявлении часов. Есть ли способ сделать что-то вроде следующего psuedo-кода?:
var files = {
scripts: [
'www/assets/scripts/plugins/**/*.js',
'www/assets/scripts/main.js',
],
vendor: [
'vendor/jquery/dist/jquery.js',
'vendor/jqueryui/ui/jquery.ui.widget.js',
'vendor/holderjs/holder.js'
],
};
...
gulp.task('js', ['lint'], function (files, output) {
return gulp.src(files)
.pipe(debug())
.pipe(concat(output))
.pipe(uglify({outSourceMap: true}))
.pipe(gulp.dest(targetJSDir))
.pipe(notify('JS minified'))
.on('error', gutil.log)
});
...
gulp.watch('scripts/**/*.js', ['lint', 'js'], files.scripts, 'app.min.js');
gulp.watch('vendor/**/*.js', ['lint', 'js'], files.vendor, 'vendor.min.js');
Перевертывание по-другому: должно ли пространство имен объявлять, которое вызвало задачу? Таким образом, я мог проверить, какие часы вызвали задачу, и условно те вещи внутри самой задачи.