Dla każdego modułu mam kilka plików, które należy skopiować do katalogu kompilacji i szukam sposobu na zminimalizowanie powtarzającego się kodu z tego:
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'));
do czegoś takiego:
gulp.src('./client/src/modules/(.*)/index.js')
.pipe(gulp.dest('./build/public/js/$1'));
Oczywiście powyższe nie działa, więc czy jest na to sposób lub npm, który już to robi?
Dzięki
./folder-example/**
pełnych folderów i plików.Brak odpowiedzi, ale zastosowanie do pojawiania się tego pytania w wynikach wyszukiwania.
Aby skopiować pliki / foldery w gulp
gulp.task('copy', () => gulp .src('index.js') .pipe(gulp.dest('dist')) );
źródło
return gulp.src('./client/src/modules/(.*)/index.js') .pipe(gulp.dest('./build/public/js/$1'));
Pracował dla mnie!
źródło
Użyj do zachowania drzewa katalogów wejściowych, które zostaną zachowane.
.pipe(gulp.dest(function(file) { var src = path.resolve(SRC_FOLDER); var final_dist = file.base.replace(src, ''); return DIST_FOLDER + final_dist; }))
Korzystanie z tym, można umieścić w src:
.src(SRC_FOLDER + '/**/*.js')
.Inne odpowiedzi nie zadziałały dla mnie (jak przy użyciu
base:
onsrc()
}, ponieważ niektóre wtyczki spłaszczają drzewo katalogów.źródło
kopiować pliki równolegle
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/')), ) );
źródło