Как использовать gulp-flatmap?

У меня есть следующие две задачи глотка:

gulp.task('get-react-bundles', function () {
    return gulp.src(projPaths["reactPath"] + '/build/**/*.js')
        .pipe(gulp.dest(function (file) {
            return projPaths[path.basename(file.path, '.js')].path + 'ReactBundles/';
        }));
});

gulp.task('update-react-bundles', ['get-react-bundles'], function () {
    gulp.src(projPaths["reactPath"] + '/build/**/*.js')
        .pipe(through.obj(function (file, enc, done) {
            console.log(file.relative);
            var bundle = projPaths[path.basename(file.path, '.js')];
            csprojUtils.ensureInItemGroup(bundle.csProj, 'ReactBundles/' + file.relative, { index: bundle.itmGrpIdx, type: 'Content' });
            this.push(file);
            done();
        }));
});

Первая задача копирует файлы js в соответствующие папки на основе имен файлов. Вторая задача берет имена файлов из исходной папки и включает их в записи .csproj, куда они были скопированы.

through - это модуль through2, а csprojUtils - это модуль csproj-utils.

Ниже приводится переменная projPaths.

var projPaths = {
    'js1': {
        csProj: "../../../f1/f2/f2.csproj",
        path: "../../../f1/f2/",
        itmGrpIdx: 3
    },
    "reactPath": "./ReactUI/components"
};

У меня есть ощущение, что эти 2 задачи можно объединить с помощью gulp-flatmap, но поток gulp должен быть возвращен из flatmap, прежде чем я смогу выполнить команду csprojUtils, чтобы файл существовал в том месте, когда он добавляется в csproj.

Был бы признателен за любую помощь в этом. Пожалуйста, прости мои ошибки, это мой первый пост на stackru.

Благодарю.

0 ответов

Другие вопросы по тегам