Как скопировать несколько файлов и сохранить структуру папок с Gulp
Я пытаюсь скопировать файлы из одной папки в другую, используя Gulp:
gulp.task('move-css',function(){
return gulp.src([
'./source/css/one.css',
'./source/other/css/two.css'
]).pipe(gulp.dest('./public/assets/css/'));
});
Приведенный выше код копирует one.css
& two.css
в two.css
public/assets/css
.
И если я использую gulp.src('./source/css/*.css')
он скопирует все файлы public/assets/css
папку public/assets/css
а это не то, что мне нужно.
Как выбрать несколько файлов и сохранить структуру папок?
Ответы
Ответ 1
Для этого, пожалуйста, укажите base
.
¶ база - укажите папку относительно cwd. По умолчанию начинается глобус. Это используется для определения имен файлов при сохранении в .dest()
В вашем случае это будет:
gulp.task('move-css',function(){
return gulp.src([
'./source/css/one.css',
'./source/other/css/two.css'
], {base: './source/'})
.pipe(gulp.dest('./public/assets/'));
});
Структура папки:
|-gulpfile.js
|-source
| |-css
| |-other
| |-css
|-public
| |-assets
Ответ 2
Я использую gulp-flatten и использую эту конфигурацию:
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));
}
И там вы можете увидеть документацию о gulp-flatten: Ссылка