sass scss/_bootstrap.scss style.css


上面的代码使用Sourcemaps可以正确生成,但是下面的代码则不能

gulp.task('sass', function () {
    sass('scss/_bootstrap.scss', {sourcemap: true})
        .on('error', function (err) {
            console.error('Error!', err.message);
        })
        .pipe(sourcemaps.write())
        .pipe(debug())
        .pipe(autoprefixer())
        .pipe(gulpif(mode === 'prod', minifyCss()))
        .pipe(rename("style.css"))
        .pipe(gulp.dest(dest+'css/'));
});

最佳答案

有两个问题:


Sass编译后,您有多个更改,但是您在Sass任务之后直接编写了源映射。 Autoprefixer和MinifyCSS会更改您的输出,因此原始的源映射不再适用。将sourcemaps.write()调用置于管道底部
不幸的是,gulp-minify-css有时与Sourcemaps有关。我建议使用Sass内置的压缩​​过程(即使通常不建议这样做)。


该代码将起作用:

gulp.task('sass', function () {
    return sass('bower_components/sass-bootstrap/lib/bootstrap.scss', {
            sourcemap: true,
            style: (mod === 'prod' ? 'compressed' : 'nested')
        })
        .on('error', function (err) {
            console.error('Error!', err.message);
        })
        .pipe(debug())
        .pipe(autoprefixer())
        .pipe(rename("style.css"))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('css/'));
});

07-28 08:52