【问题标题】:Starting Gulp with Gulp-less maintain folder structure使用无 Gulp 维护文件夹结构启动 Gulp
【发布时间】:2014-02-22 23:37:46
【问题描述】:

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

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

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

我是 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,这是我所期望的。

【问题讨论】:

标签: gulp gulp-less


【解决方案1】:

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

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

查看链接https://github.com/gulpjs/gulp/issues/151

干杯,赤旦

【讨论】:

    【解决方案2】:

    你需要使用两个流

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

    【讨论】:

    • 不,他们没有。他们只需要在gulp.src() 中包含base 选项,我在评论中链接了该选项。这已经在 SO 上多次回答了。
    猜你喜欢
    • 2015-10-23
    • 2014-11-09
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多