使用Gulp-less维护文件夹结构启动Gulp

时间:2014-02-22 23:37:47

标签: gulp gulp-less

我今天开始关注gulp.js来编译我的文件等。

我已经完成并运行了一项任务,但已编译的文件都放在同一个文件夹中 - 而不是维护源层次结构。

有没有办法确保输出保持原始文件结构?

我是gulp的新手,所以可能没有正确地做到这一点。

这是我的gulp文件(与Less相关的部分):

var sourceLess = 'app/assets/stylesheets/less';
var targetCss = 'public/css2';

// Compile Our Less
gulp.task('less', function() {
return gulp.src([sourceLess + '/my-bootstrap-theme.less', sourceLess + '/themes/*.less'])
    .pipe(less())
    .pipe(minifyCss())
    .pipe(gulp.dest(targetCss));
});

我希望源主题文件夹中的Less文件放在目标主题文件夹中。我错过了哪些选择?

我是否必须将这些作为单独的任务运行?

由于

更新 我查看了建议的帖子并改变了我的路径:

gulp.src([sourceLess + '/**/my-bootstrap-theme.less', sourceLess + '/themes/**/*.less', sourceLess + '/responsive.less'], {
    base: 'sourceLess'
})

我还将目录变量更改为:

var sourceLess = './app/assets/stylesheets/less';
var targetCss = './public/css2';

但它不会产生我期望它的文件夹themes

2 个答案:

答案 0 :(得分:3)

如果要保留子文件夹,则必须在选项中定义基数(第二个参数) 例如,保持" assets / file.doc"在" dist /":

gulp.src(["assets/file.doc"], {base: "."})
    .pipe(gulp.dest("dist/"));

点击链接https://github.com/gulpjs/gulp/issues/151

欢呼,chidan

答案 1 :(得分:0)

您需要使用两个流

var sourceLess  = 'app/assets/stylesheets/less';
var targetCss   = 'public/css2';

gulp.task('less', function() {

    // my-bootstrap-theme.less
    gulp.src(sourceLess + '/my-bootstrap-theme.less')
        .pipe(less())
        .pipe(minifyCss())
        .pipe(gulp.dest(targetCss));

    // themes/*.less
    gulp.src(sourceLess + '/themes/*.less')
        .pipe(less())
        .pipe(minifyCss())
        .pipe(gulp.dest(targetCss + '/themes'));

});