Ich versuche, Dateien mit Gulp von einem Ordner in einen anderen Ordner zu kopieren:
gulp.task('move-css',function(){
return gulp.src([
'./source/css/one.css',
'./source/other/css/two.css'
]).pipe(gulp.dest('./public/assets/css/'));
});
Der obige Code kopiert one.css
& two.css
in den public/assets/css
Ordner.
Und wenn ich es benutze gulp.src('./source/css/*.css')
, werden alle CSS-Dateien in den public/assets/css
Ordner kopiert, was nicht das ist, was ich will.
Wie wähle ich mehrere Dateien aus und behalte die Ordnerstruktur bei?
javascript
css
gulp
NullPoiиteя
quelle
quelle
public/assets/css
?Antworten:
Um dies zu erreichen, geben Sie bitte an
base
.In Ihrem Fall wäre es:
gulp.task('move-css',function(){ return gulp.src([ './source/css/one.css', './source/other/css/two.css' ], {base: './source/'}) .pipe(gulp.dest('./public/assets/')); });
Ordnerstruktur:
quelle
['./lib/one.js', './models/two.js']
), können Sie hinzufügen{base: '.'}
, damit die gesamte Struktur erhalten bleibt.gulp.src('**/*.*')
Ich benutze gulp-flatten und benutze diese Konfiguration:
var gulp = require('gulp'), gulpFlatten = require('gulp-flatten'); var routeSources = { dist: './public/', app: './app/', html_views: { path: 'app/views/**/*.*', dist: 'public/views/' } }; gulp.task('copy-html-views', task_Copy_html_views); function task_Copy_html_views() { return gulp.src([routeSources.html_views.path]) .pipe(gulpFlatten({ includeParents: 1 })) .pipe(gulp.dest(routeSources.html_views.dist)); }
Und dort sehen Sie die Dokumentation zu gulp-flatten: Link
quelle
gulp.task('move-css',function(){ return gulp .src([ 'source/**'], { base: './' }) .pipe(gulp.dest('./public/assets/css/')); });
Ihr eigener Code enthielt beim Aufrufen nicht den gesamten Verzeichnisbaum der Quelle
'source/**'
und der Basis{base:'./'}
,gulp.src
wodurch die Funktion fehlschlug. Die anderen Teile waren in Ordnung.gulp.task('move-css',function(){ return gulp.src([ './source/css/one.css', './source/other/css/two.css' ]).pipe(gulp.dest('./public/assets/css/')); });
quelle