2016-09-28 47 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