Javascript 是否正确创建(…in…)的吞咽任务?

Javascript 是否正确创建(…in…)的吞咽任务?,javascript,gulp,gulp-load-plugins,Javascript,Gulp,Gulp Load Plugins,我做错了什么 gulpfile.js "严格使用",; //模块和插件 var gulp=需要“gulp”; 常量图像=需要“吞咽图像”; var$=需要“gulp-load-plugins”; 让目录=[ “2006/Art1”, “2006/Art2”, “2010/Art1” ]; 函数gulpTaskdirectoryName{ gulp.task'blogmotionAllMedia',函数{ 回灌 .src'src/content/'+directoryName+'/media/*.

我做错了什么

gulpfile.js

"严格使用",; //模块和插件 var gulp=需要“gulp”; 常量图像=需要“吞咽图像”; var$=需要“gulp-load-plugins”; 让目录=[ “2006/Art1”, “2006/Art2”, “2010/Art1” ]; 函数gulpTaskdirectoryName{ gulp.task'blogmotionAllMedia',函数{ 回灌 .src'src/content/'+directoryName+'/media/*.{jpg,jpeg,png,gif}' .pipe$.responsive{ “*.jpg”:[ {宽度:400,重命名:{后缀:'-4'}}, {重命名:{后缀:'-6'}} ], } .pipeimage{ JPEG重新压缩:正确 } .pipegulp.dest'dist/content/'+目录名+'/media' }; } var目录; 对于目录中的目录{ 古尔普塔克目录; } 运行任务 npx gulp gulpTask

意料之外

我收到以下错误消息:

任务从未定义:gulpTask


我仍然依恋着我的想法,从

首先,gulp任务应该注册为您想要调用它的名称gulp。任务'blogmotionAllMedia'。。。应该是大口喝,任务是“大口喝”。。。。 此外,我认为您应该迭代任务中的目录

此外,我认为您需要使用by const merge=require'merge-stream'合并结果流,并返回mergedirectories.mapsingleDirectoryGulpTask

结果应该如下所示: 免责声明:好几年没吃东西了。还是希望有帮助

'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));
});

更改:

for (directory in directories) {
  gulpTask(directory);
}
致:


谢谢,我试过了,收到了这样一条消息:以下任务没有完成:gulpTask您忘记发出异步完成信号了吗?这意味着什么?根据这一点,您需要使用合并流来收集多个吞咽呼叫的结果流。danke für Deine Hilfe!列比·格鲁·奥斯·维恩!{谢谢你的帮助!来自维也纳的问候!}不幸的是,这不起作用。仅拍摄第一个目录中的第一张图片
for (directory of directories) {
  gulpTask(directory);
}