2016-09-28 43 views
0

是否可以压缩sass并在结果中包含源地图?如果我有.pipe(cssnano())它消除了sourcemaps:压缩Sass并包含吞吐源图?

sass: function(sassFilename, basename) { 
    return gulp.src(paths.sass + sassFilename) 
     .pipe(sourcemaps.init({loadMaps: true})) 
     .pipe(sass().on('error', sass.logError)) 
     .pipe(sourcemaps.write()) 
     .pipe(cssnano()) 
     .pipe(rename({ basename:basename, suffix: '.min' })) 
     .pipe(gulp.dest(paths.buildCss)); 
} 

回答

1

sourcemaps.init()sourcemaps.write()调用需要“书端”所有其他.pipe()阶段你的信息流中。在sourcemaps.init()sourcemaps.write()之间没有发生的任何事情都不会记录在您的源代码映射中(或者甚至可能会在您的案例中删除它们)。

这意味着你需要rename()后,移动你的sourcemaps.write()调用行:

sass: function(sassFilename, basename) { 
    return gulp.src(paths.sass + sassFilename) 
    .pipe(sourcemaps.init({loadMaps: true})) 
    .pipe(sass().on('error', sass.logError)) 
    .pipe(cssnano()) 
    .pipe(rename({ basename:basename, suffix: '.min' })) 
    .pipe(sourcemaps.write()) 
    .pipe(gulp.dest(paths.buildCss)); 
} 
+0

运行完美,欢呼声。 – kalifa17