【问题标题】:How to put the file compiled by gulp-compass into gulp's stream?如何将 gulp-compass 编译的文件放入 gulp 的流中?
【发布时间】:2016-01-29 07:11:44
【问题描述】:

我是 gulp 和 gulp-compass 的新手。恕我直言,gulp-compass 在 gulp 的流范式中不起作用。

通常,gulp 的任务应该是这样的:

gulp.src('path/to/src')
.pipe(doSth)
.pipe(gulp.dest('path/to/dist'));

但以下代码适用于 gulp-compass:

gulp.src('') // <-Empty source is OK
.pipe(compass({
  css: 'path/to/dist/css' // <- This is the output dir
  scss: 'path/to/src/scss' // <- This is the input scss file glob
}));
// No dest is needed!

这导致了我的以下问题。

|- dist
|- scss
    |- app.scss
|- css
    |- bootstrap.css

我想用gulp-compassapp.scss编译成app.css,然后将app.cssbootstrap.css打包,然后缩小输出为app-release.css

我想在 ONE gulp.task 中完成这项任务。

function buildCss(inputStream) { // minify and output to dist.
    return inputStream
        .pipe(cssnano())
        .pipe(gulp.dest('dist'));
}

gulp.task('css-build', function() {
    var stream = gulp.src('scss/app.scss')
        .pipe(compass({
            css: 'css',
            sass: 'scss'
        }))
        .pipe(gulp.src('css/*.css')); // <-- **HERE** 
    return buildCss(stream);
});

但是,编译后的 app.css 文件不包含在 HERE 的流中。

解决办法是什么?

【问题讨论】:

    标签: node.js sass minify compass gulp-compass


    【解决方案1】:

    我可以使用merge-stream 解决这个问题。

    gulp.task('css', function() {
        var scss = gulp.src('scss/*.scss')
        .pipe(compass({
            css: 'css',
            sass: 'scss'
        }));
        var css = gulp.src('css/bootstrap.css');
        var stream = merge(scss, css)
        .pipe(concat('app-release.css'));
        return buildCss(stream);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      相关资源
      最近更新 更多