下面的gullow流中有一个错误,但我就是找不到哪里。
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
未重新生成
我这里一定少了什么东西。
问题是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'));
});
最佳做法是使用glob根"./"作为路径前缀。即"./app/css/normalize.css"等。
尝试使用gulp-debug来查看管道中有多少文件(如果有的话)。您可以在每个步骤之间添加一个调试管道来查看发生了什么。