GulpJS复制文件夹" foo"中的文件夹和文件。到文件夹" bar"并保留文件夹结构

时间:2015-01-13 14:43:00

标签: gulp

我有一个文件夹“foo”和文件夹“bar”,我想复制并运行特定文件文件的特定任务。

问题:我可以复制文件,在它们上运行任务并保留文件夹结构,但是当我将文件移动到文件夹“bar”时,它会在文件夹“bar”中创建一个文件夹“foo”,并将所有复制的文件存储在其中。 / p>

尝试:尝试将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' ]);

1 个答案:

答案 0 :(得分:2)

解决方案:将'base': '.'更改为'base': 'foo'