gulp-sass 与 Gulp 4.0 和 gulp-cli 4.0 不管道 css

gulp-sass with Gulp 4.0 and gulp-cli 4.0 not piping css

我正在使用最新版本的 Node,Gulp 和 gulp-cli。我的gulpfile.js就是这样。正在尝试 gulp 自学。

var gulp = require('gulp'),
    sass = require('gulp-sass');


gulp.task('default', function(){
    return gulp.src("./styles/_site.scss")
        .pipe(sass())
        .pipe(gulp.dest("./public"));
});

当我运行gulp时,我在目的地一无所获。不会抛出任何错误。

我删除了到 sass 插件和 运行 任务的管道,然后它应该只是将文件复制到目的地),它做到了。

然后我在直播中使用了 gulp-水管工。

var gulp = require('gulp'),
    sass = require('gulp-sass'),
    plumber = require('gulp-plumber');


gulp.task('default', function(){
    try {

        var bla = sass();

        var blah =  gulp.src("./styles/_site.scss")
            .pipe(plumber({
                handleError: function (err) {
                    console.log(err);
                    this.emit('end');
                }
            }))
            .pipe(sass())
            .pipe(gulp.dest("./public"));
    } catch(ex) {
        console.log(ex);
        var blah =  gulp.src("./styles/_site.scss")
                        .pipe(gulp.dest("./public"));
    } finally {
        return blah;
    }
});

我使用 vs code(同样是最新版本;)来调试..

任务 运行 没有发现任何错误,即使是水管工。我在这里迷路了,非常感谢一些建议。

PS:我尝试了 gulp-less 以查看它是否可以从 *.less 转换为 *.css,并且成功了。那里没有问题。

_site.scss 重命名为 site.scss

gulp-sass quietly skips all files starting with an underscore. This is because as a convention, partials (i.e. files that you want to import but should not compile to a separate CSS output) must have their name starting with an underscore.

由于您打算为这个输入 SCSS 文件输出一个 CSS 文件,您应该 而不是 将其标记为部分文件,因此您不应有前导下划线。