J'essaie de copier un fichier d'un dossier à un autre en utilisant gulp
gulp.task('move-css',function(){
return gulp.src([
'./source/css/one.css',
'./source/other/css/two.css'
]).pipe(gulp.dest('./public/assets/css/'));
});
le code ci-dessus copie one.css
& two.css
dans le dossier public/assets/css
et si j'utilise gulp.src('./source/css/*.css')
, il copiera tous les fichiers css dans le dossier public/assets/css
qui n'est pas ce que je veux
ma question est de savoir comment sélectionner plusieurs fichiers et conserver la structure du dossier.
Pour ce faire, veuillez spécifier base
.
¶ base - Spécifie le dossier relatif au cwd. La valeur par défaut est le début du glob. Ceci est utilisé pour déterminer les noms de fichier lors de l'enregistrement dans
.dest()
Dans votre cas ce serait:
gulp.task('move-css',function(){
return gulp.src([
'./source/css/one.css',
'./source/other/css/two.css'
], {base: './source/'})
.pipe(gulp.dest('./public/assets/'));
});
Structure du dossier:
|-gulpfile.js
|-source
| |-css
| |-other
| |-css
|-public
| |-assets
J'utilise gulp-flatten et utilise cette configuration.
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));
}
Et là, vous pouvez voir les documentations sur gulp-flatten: Link.