GulpJS 将文件夹和文件从文件夹 "foo" 复制到文件夹 "bar" 并保留文件夹结构

GulpJS copy folders and files from folder "foo" to folder "bar" and retain folder structure

我有文件夹 "foo" 和文件夹 "bar",我想复制和 运行 特定文件上的特定任务。

问题:我可以复制文件,运行 任务并保留文件夹结构,但是当我将文件移动到文件夹 "bar" 时,它会在文件夹 [=] 中创建一个文件夹 "foo" 28=] 并将所有复制的文件存储在其中。

尝试过:尝试将 base: '.' 更改为 base: '../' 但这只会使其将所有内容编译到 bar.

的父文件夹中

文件夹结构:

.
├── foo
│   ├── app.js
│   ├── models
│   ├── public
│   │   ├── images
│   │   └── js
│   ├── routes
│   └── scss
├── bar
│   └── ...
└── gulpfile.js

Gulpjs.js 文件:

var gulp     = require('gulp');
var uglify   = require('gulp-uglify');
var sass     = require('gulp-ruby-sass');
var cssmin   = require('gulp-minify-css');
var rename   = require('gulp-rename');
var htmlmin  = require('gulp-htmlmin');

var paths = {
    'ssjs' : ['foo/app.js', 'foo/routes/*.js', 'foo/models/*.js'],
    'csjs' : ['foo/public/js/*.js'],
    'sass' : ['foo/scss/*.scss', 'foo/scss/modules/*.scss'],
    'html' : ['foo/public/*.html'],
    'build' : 'bar',
    'public': 'public'
};

gulp.task('ssjs', function() {
    return gulp.src(paths.ssjs, {'base': '.'})
            .pipe(uglify({'preserveComments': 'some'}))
            .pipe(gulp.dest(paths.build));
});

gulp.task('csjs', function() {
    return gulp.src(paths.csjs, {'base': '.'})
            .pipe(uglify({'preserveComments': 'some'}))
            .pipe(gulp.dest(paths.build));
});

gulp.task('sass', function() {
    return gulp.src(paths.sass, {'base': '.'})
            .pipe(sass())
            .pipe(cssmin())
            .pipe(gulp.dest(paths.build));
});

gulp.task('html', function() {
    return gulp.src(paths.html, {'base': '.'})
            .pipe(htmlmin({'collapseWhitespace': true}))
            .pipe(gulp.dest(paths.build));
});

gulp.task('watch', function() {
    gulp.watch(paths.ssjs, ['ssjs']);
    gulp.watch(paths.csjs, ['csjs']);
    gulp.watch(paths.scss, ['sass']);
});

gulp.task('default', [ 'ssjs', 'csjs', 'sass', 'html', 'watch' ]);

解决方法:将'base': '.'改为'base': 'foo'