【问题标题】:Gulp.js starts sass task but doesn't finishGulp.js 启动 sass 任务但没有完成
【发布时间】:2014-06-28 09:28:34
【问题描述】:

我的 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']);

当我运行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

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

[gulp] Starting 'sass'...

此时它只是挂起并且永远不会完成。我做错了什么?

【问题讨论】:

    标签: sass gulp


    【解决方案1】:

    sass 任务中的返回似乎破坏了它,更新了我的 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']);
    

    【讨论】:

    • 我注意到了同样的情况,但删除返回使 gulp 不知道流,即。这只是消除了等待,但工作无论如何都没有执行
    • 与你相反,我必须将 return 放在我的 compile_scss 任务中,它起作用了!在此之前,我的compile_scss 任务从未完成,在第一次通话后一直挂起。感谢您分享您的经验,给我解决的想法! :)
    【解决方案2】:

    对于遇到此问题的其他人,我设法通过删除循环导入来解决此问题。

    例如...

    之前:

    file1.scss
    @import 'file2';
    
    file2.scss
    @import 'file1';
    

    之后:

    file1.scss
    <removed import>
    
    file2.scss
    @import 'file1';
    

    我实际上并不需要循环依赖项,我只是将依赖项复制/粘贴到我所有 scss 文件的顶部。请注意,如果您的文件确实需要相互导入,您要么需要重构文件这样可以避免循环依赖。

    【讨论】:

      【解决方案3】:

      我的 sass 编译不起作用并且 gulp 进程挂起并 ping 我的处理器的原因是我的 .scss 文件中有一个旧引用,但我已经删除了该文件。从来没有任何抱怨的输出 - 这很难追踪 - 我很幸运。

      @import 'file-that-has-been-removed-but-still-referenced';

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-08
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2017-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多