webentwicklung-frage-antwort-db.com.de

Suche nach einem Weg, um Dateien in gulp zu kopieren und umzubenennen, basierend auf dem übergeordneten Verzeichnis

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

91
chris

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 ...)

131
OverZealous

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'))
);
211
Kirk Strobeck
return gulp.src('./client/src/modules/(.*)/index.js')  
  .pipe(gulp.dest('./build/public/js/$1'));

Arbeitete für mich!

5
user2977367

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.

3
brnmonteiro

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/')),
)
);
0
Dan Alboteanu