Für jedes Modul habe ich einige Dateien, die in das Build-Verzeichnis kopiert werden müssen, und suche nach einer Möglichkeit, den sich wiederholenden Code daraus zu minimieren:
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'));
zu so etwas:
gulp.src('./client/src/modules/(.*)/index.js')
.pipe(gulp.dest('./build/public/js/$1'));
Offensichtlich funktioniert das oben nicht, gibt es eine Möglichkeit, dies zu tun, oder eine npm, die dies bereits tut?
Vielen Dank
Am besten konfigurieren Sie Ihre base
, wenn Sie Dateien beschaffen.
gulp.src('./client/src/modules/**/index.js', {base: './client/src/modules'})
.pipe(gulp.dest('./build/public/js/'));
Dies weist gulp
an, das Modulverzeichnis als Ausgangspunkt für die Ermittlung relativer Pfade zu verwenden.
(Sie können auch /**/*.js
verwenden, wenn Sie alle JS-Dateien einschließen möchten ...)
Nicht die Antwort, aber für das Auftreten dieser Frage in den Suchergebnissen.
Um Dateien/Ordner in gulp zu kopieren
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'));
Arbeitete für mich!
Die Verwendung für die Eingabebilder-Struktur wird beibehalten.
.pipe(gulp.dest(function(file) {
var src = path.resolve(SRC_FOLDER);
var final_dist = file.base.replace(src, '');
return DIST_FOLDER + final_dist;
}))
Mit diesem können Sie in das src einfügen: .src(SRC_FOLDER + '/**/*.js')
.
Die anderen Antworten funktionierten nicht für mich (wie base:
bei src()
}, da einige Plugins die Verzeichnisstruktur reduzieren.
dateien parallel kopieren
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/')),
)
);