单个文件上的scss的gulp源图

时间:2015-05-26 10:38:02

标签: javascript node.js sass gulp gulp-sourcemaps

sass scss/_bootstrap.scss style.css 

以上代码使用源映射正确生成,但不生成以下代码

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/'));
});

1 个答案:

答案 0 :(得分:1)

有两个问题:

  1. 在 Sass编译之后,您有多次更改,但是在Sass任务之后直接编写源图。 Autoprefixer和MinifyCSS会改变您的输出,因此原始源图不再是真实的。将sourcemaps.write()来电置于管道底部

  2. 不幸的是,gulp-minify-css有时会出现源代码问题。我建议使用Sass的内置压缩过程(尽管通常不推荐使用。

  3. 此代码可以使用:

    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/'));
    });