What am I doing wrong?
gulpfile.js
'use strict';
// Modules & Plugins
var gulp = require('gulp');
const image = require('gulp-image');
var $ = require('gulp-load-plugins')();
let directories = [
'2006/Art1',
'2006/Art2',
'2010/Art1'
];
function gulpTask(directoryName) {
gulp.task('blogmotionAllMedia', function () {
return gulp
.src('src/content/' + directoryName + '/media/*.{jpg,jpeg,png,gif}')
.pipe($.responsive({
'*.jpg': [
{ width: 400, rename: { suffix: '-4' } },
{ rename: { suffix: '-6' } }
],
}))
.pipe(image({
jpegRecompress: true
}))
.pipe(gulp.dest('dist/content/' + directoryName + '/media'))
});
}
var directory;
for (directory in directories) {
gulpTask(directory);
}
run task
npx gulp gulpTask
unexpected
I get the following error message:
Task never defined: gulpTask
I am still attached to my past question with the answer (idea) from Miles
First, the gulp task should be registered with the name you want to invoke it gulp.task('blogmotionAllMedia', ...
should be gulp.task('gulpTask', ...
.
Furthermore I think you should iterate over the directories inside of the task.
Additionally I think you need to merge the resulting streams using merge-stream by const merge = require('merge-stream')
and return merge(directories.map(singleDirectoryGulpTask));
Result should look like this: (Disclaimer: haven't done gulp stuff for years. Still hope it helps)
'use strict';
// Modules & Plugins
var gulp = require('gulp');
const image = require('gulp-image');
var $ = require('gulp-load-plugins')();
const merge = require('merge-stream')
let directories = [
'2006/Art1',
'2006/Art2',
'2010/Art1'
];
gulp.task('gulpTask', function () {
function singleDirectoryGulpTask(directoryName) {
return gulp
.src('src/content/' + directoryName + '/media/*.{jpg,jpeg,png,gif}')
.pipe($.responsive({
'*.jpg': [
{ width: 400, rename: { suffix: '-4' } },
{ rename: { suffix: '-6' } }
],
}))
.pipe(image({
jpegRecompress: true
}))
.pipe(gulp.dest('dist/content/' + directoryName + '/media'));
}
return merge(directories.map(singleDirectoryGulpTask));
});