винил-фтп загрузить успешное событие? - PullRequest
0 голосов
/ 05 июня 2019

у нас сейчас странная проблема с нашим сервером, когда иногда файл не загружается с первого раза.Поэтому я добавляю запасной вариант в наш gulpfile, чтобы повторить попытку, если он не удастся.

Тем не менее, я хочу отобразить сообщение о том, когда оно все-таки успешно, для которого я обычно использую .on('env', fn), но, конечно, это срабатывает, даже если есть ошибка.

Можно ли с помощью gulp определить, успешно ли загружен файл?

const files = [
    { glob: 'templates/*.tpl', base: 'templates/', dest: '/templates/' + theme.folder },
    { glob: 'css-src/*.css', base: 'templates/', dest: '/templates/' + theme.folder },
    { glob: 'js-src/min/**/*-min.js', base: 'templates/', dest: '/templates/' + theme.folder },
    {
        glob: [
            'img-src/theme-compressed/*.png', 'img-src/theme-compressed/*.jpg',
            'img-src/theme-compressed/*.gif', 'img-src/theme-compressed/*.jpeg',
            'img-src/theme-compressed/*.svg'
        ],
        base: 'img-src/theme-compressed/', dest: '/img-src/' + theme.folder + '/theme'
    },
    {
        glob: [ 'img-src/cars-compressed/*.png', 'img-src/cars-compressed/*.jpg', 'img-src/cars-compressed/*.jpeg' ],
        base: 'img-src/theme-compressed/', dest: '/img-src/' + theme.folder + '/theme'
    },
];

function uploadFiles(event, index, group) {
    gulp.src([ event.path ], { base: group.base, buffer: false })
    .pipe(ftp.dest(group.dest)
        .on('error', function () {
            retry[index]++;
            if (retry[index] <= 3) {
                console.log('Failed to upload template, retrying... (' + retry[index] + ')');
                uploadFiles(event, index, group);
            }
        })
        .on('end', function() {
            console.log('file uploaded?');
        })
    )
}

files.forEach((group, index) => {
    retry[index] = 0;
    $.gulpWatch(group.glob, { awaitWriteFinish: true }, (event) => {
        $.fsExtra.pathExists(event.path, (err, exists) => {
            if (exists) {
                uploadFiles(event, index, group);
            }
        });
    });
});

Как видите, я разрешаю запускаться только 3 раза, но обычно он работает во второй раз.тем не мение.Проблема в том, что я бью .on('end', fn), даже когда это не удается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...