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

使用无Gulp启动Gulp维护文件夹结构,gulp,gulp-less,Gulp,Gulp Less,我今天开始研究gulp.js来编译我的less文件等等 我已经启动了它并运行了一个任务,但是编译后的文件都放在同一个文件夹中,而不是维护源层次结构 有没有办法确保输出保持原始文件结构 我是新手,所以可能做得不对 这是我的吞咽文件(与Less有关的部分): var sourceLess='app/assets/stylesheets/less'; var targetCss='public/css2'; //编辑我们的 吞咽任务('less',函数(){ 返回gulp.src([sourceLes

我今天开始研究gulp.js来编译我的less文件等等

我已经启动了它并运行了一个任务,但是编译后的文件都放在同一个文件夹中,而不是维护源层次结构

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

我是新手,所以可能做得不对

这是我的吞咽文件(与Less有关的部分):

var sourceLess='app/assets/stylesheets/less';
var targetCss='public/css2';
//编辑我们的
吞咽任务('less',函数(){
返回gulp.src([sourceLess+'/my bootstrap theme.less',sourceLess+'/themes/*.less']))
.管道(小于()
.pipe(minifyCss())
.管道(吞咽目标(targetCss));
});
我希望源主题文件夹中的较少文件放在目标主题文件夹中。我错过了什么选择

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

谢谢

更新: 我已经阅读了建议的帖子,并将我的路径改为:

gulp.src([sourceLess+'/**/my bootstrap theme.less',sourceLess+'/themes/**.less',sourceLess+'/responsive.less']{
基地:“无源”
})
我还将目录变量更改为:

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

但是它不会生成我期望的文件夹
主题。

您需要使用两个流

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'));

});

如果要保留子文件夹,必须在选项(第2个参数)中定义基础 e、 例如,要在“dist/”中保留“assets/file.doc”:

查看链接


干杯,chidan

它的可能重复项看起来您正在将
base
设置为
'sourceLess'
,字符串,而不是
sourceLess
,变量。不,它们不是。他们只需要在
gulp.src()
中包含
base
选项,我在注释中链接了该选项。这个问题已经回答了很多次了。
gulp.src(["assets/file.doc"], {base: "."})
    .pipe(gulp.dest("dist/"));