Для каждого модуля у меня есть файлы, которые нужно скопировать в каталог сборки, и я ищу способ минимизировать повторяющийся код из этого:
gulp.src('./client/src/modules/signup/index.js')
.pipe(gulp.dest('./build/public/js/signup'));
gulp.src('./client/src/modules/admin/index.js')
.pipe(gulp.dest('./build/public/js/admin'));
примерно так:
gulp.src('./client/src/modules/(.*)/index.js')
.pipe(gulp.dest('./build/public/js/$1'));
Очевидно, что вышеперечисленное не работает, так есть ли способ сделать это или npm, который уже это делает?
Благодарность
./folder-example/**
полным папкам и файлам.Не ответ, но применимо к появлению этого вопроса в результатах поиска.
Чтобы скопировать файлы / папки в gulp
gulp.task('copy', () => gulp .src('index.js') .pipe(gulp.dest('dist')) );
источник
return gulp.src('./client/src/modules/(.*)/index.js') .pipe(gulp.dest('./build/public/js/$1'));
Сработало у меня!
источник
Используемое для сохранения входное дерево каталогов будет сохранено.
.pipe(gulp.dest(function(file) { var src = path.resolve(SRC_FOLDER); var final_dist = file.base.replace(src, ''); return DIST_FOLDER + final_dist; }))
Используя это, вы можете поместить в ЦСИ:
.src(SRC_FOLDER + '/**/*.js')
.Другие ответы не сработали для меня (например, использование
base:
onsrc()
}, потому что некоторые плагины сглаживают дерево каталогов.источник
копировать файлы параллельно
gulp.task('copy', gulp.parallel( () => gulp.src('*.json').pipe(gulp.dest('build/')), () => gulp.src('*.ico').pipe(gulp.dest('build/')), () => gulp.src('img/**/*').pipe(gulp.dest('build/img/')), ) );
источник