gulp流不生成dest文件

gulp stream does not generate dest files

关注 gulp 直播时出现错误,但我找不到位置。

var processors = [autoprefixer({ browsers: ['last 2 version']}),
                  cssnano(),];

var myjob = gulp.src(['app/css/normalize.css',
                      'app/css/org.scss'])
        .pipe(watch('app/css/org.scss', {verbose: true}))
        .pipe(gulpif('*.scss', sass()))
        .pipe(concat('org.css'))
        .pipe(postcss(processors))
        .pipe(flatten())
        .pipe(gulp.dest('dist'));

问题dist/org.css没有重新生成

一定是我遗漏了什么。

最佳做法是使用 glob 根“./”作为路径前缀。即“./app/css/normalize.css”等等。

尝试使用 gulp-debug 查看管道中有多少文件(如果有)。您可以在每个步骤之间添加一个调试管道以查看发生了什么。

问题是 gulp-concat 不会推送串联的 org.css 文件,除非它从上游接收到 end 事件。由于 gulp-watch 从不发出 end 事件,gulp-concat 只是无限期挂起。

解决方案是简单地将gulp-concat替换为gulp-continuous-concat:

var continuousConcat = require('gulp-continuous-concat');

var processors = [autoprefixer({ browsers: ['last 2 version']}),
                  cssnano(),];

gulp.task('default', function() {
  return gulp.src(['app/css/normalize.css',
                   'app/css/org.scss'])
    .pipe(watch('app/css/org.scss', {verbose: true}))
    .pipe(gulpif('*.scss', sass()))
    .pipe(continuousConcat('org.css'))
    .pipe(postcss(processors))
    .pipe(flatten())
    .pipe(gulp.dest('dist'));
});