我遇到与this guy相同的问题。
我的终端看起来像:
$ gulp watch
[23:59:03] Using gulpfile gulpfile.js
[23:59:03] Starting 'watch'...
[23:59:03] Finished 'watch' after 8.68 ms
http://jsbin.com/poxoke/1/edit?js
为什么我无法观察文件更改?为什么这么快结束?
谢谢!
答案 0 :(得分:0)
您可以尝试添加gulp-util
var util= require('gulp-util');
然后在你的sass任务中添加一行来报告任何错误(如果是这个),以控制输出。
gulp.task('sass', function () {
return gulp.src('assets/scss/*.scss')
.pipe(sourcemaps.init())
.pipe(sass({
includePaths: ['sass'].concat(bourbon),
outputStyle: 'compressed'
}))
.on('error', util.log)
.pipe(sourcemaps.write())
.pipe(gulp.dest('assets/css'));
});
如果gulp-sass抛出错误,可能会消耗掉#34;通过管道但仍然导致整个流终止。因此,如果您添加该行以显式捕获它们然后将其注销,您可以查看是否确实如此。
您的观看任务取决于' sass'任务,如果失败,你的任务就结束了。
gulp.task('watch', function(){
gulp.watch('assets/scss/*.scss', ['sass']);
});
我目前的规则是:
gulp.task('sass', function () {
var src = path.join('src', 'scss', '*.scss');
var dst = path.join('public', 'css');
var config = {
errLogToConsole: true,
outputStyle: 'compressed',
sourceComments: false
};
return gulp.src(src)
.pipe(sourcemaps.init())
.pipe(sass(config)).on('error', util.log)
.pipe(concat('style.css')).on('error', util.log)
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(dst));
});
一切正常
我的输出是这样的:
[05:49:27] Using gulpfile F:\Projects\Upload\gulpfile.js
[05:49:27] Starting 'watch'...
[05:49:29] Finished 'watch' after 1.98 s
但是Gulp没有返回命令行,光标仍然闪烁,当我更新SASS文件时,代码再次运行并且更新了CSS