Gulp.js开始执行sass任务但没有完成

xyl*_*lar 8 sass gulp

我的gulpfile.js

var gulp = require('gulp');

// plugins
var sass = require('gulp-sass');
var minifycss = require('gulp-minify-css');

// compile sass
gulp.task('sass', function() {
    return gulp.src('static/css/scss/main.scss')
        .pipe(sass())
        .pipe(minifycss())
        .pipe(gulp.dest('/static/css/main.css'));
});

gulp.task('watch', function() {
    gulp.watch('static/css/scss/*.scss', ['sass']);
})

gulp.task('default', ['watch']);
Run Code Online (Sandbox Code Playgroud)

当我运行时,gulp我得到以下输出:

[gulp] Using gulpfile /var/www/example/gulpfile.js
[gulp] Starting 'watch'...
[gulp] Finished 'watch' after 21 ms
[gulp] Starting 'default'...
[gulp] Finished 'default' after 23 ?s
Run Code Online (Sandbox Code Playgroud)

然后,当我保存我的main.scss文件时,它输出:

[gulp] Starting 'sass'...
Run Code Online (Sandbox Code Playgroud)

在这一点上,它只是挂起,永远不会完成.我究竟做错了什么?

xyl*_*lar 3

sass 任务中的 return 似乎破坏了它,将我的 gulpfile.js 更新为以下内容以使其正常工作:

var gulp = require('gulp');

// plugins
var sass = require('gulp-sass');
var minifycss = require('gulp-minify-css');

// compile sass
gulp.task('sass', function() {
    gulp.src('static/css/scss/main.scss')
        .pipe(sass())
        .pipe(minifycss())
        .pipe(gulp.dest('/static/css'));
});

gulp.task('watch', function() {
    gulp.watch('static/css/scss/*.scss', ['sass']);
})

gulp.task('default', ['watch']);
Run Code Online (Sandbox Code Playgroud)

  • 我注意到了同样的情况,但是删除 return 会使 gulp 不知道流,即。这只是消除了等待,但工作无论如何都没有执行 (8认同)