禁用指南针/scss 源地图

Posted

技术标签:

【中文标题】禁用指南针/scss 源地图【英文标题】:Disabling compass/scss source maps 【发布时间】:2014-10-17 10:35:50 【问题描述】:

我正在使用最新版本的 sass 和 compass 并使用 gulp-compass 进行构建。即使我在 config.rb 文件中设置了 sourcemap=false 并在 gulp-compass 选项中设置了选项 sourcemap:false,我也得到了 .map 源映射文件。我有时想禁用源映射以加快构建速度。生成源映射时运行 gulp 任务大约需要两倍的时间。有什么建议吗?

config.rb:

http_path = "/"
css_dir = "css"
sass_dir = "sass"
images_dir = "img"
javascripts_dir = "js"
sourcemap = false
output_style = ":compact"

gulp.js:

gulp.task('compass', function() 
    return gulp.src(['sass/screen.scss', 'sass/screen_fallback.scss']).pipe(compass(
        config_file: 'config.rb',
        css: 'css',
        sass: 'sass',
        sourcemap: false
    )).on('error', function(err) 
        notify(
            message: err
        )
    ).pipe(notify(
        message: 'Compass processed.'
    )).pipe(minifycss()).pipe(rename(
        suffix: '.min'
    )).pipe(gulp.dest('css')).pipe(notify(
        message: 'CSS minified.'
    ));
);

【问题讨论】:

目前有一个关于此主题的已关闭问题:github.com/appleboy/gulp-compass/issues/60 @DomiAlex 看起来没有发布解决方案。谢谢。 我的“解决方案”是在构建文件后运行 rimraf 来删除文件。例如:code gulp.task('deleteMap', ['compass'], function () return gulp.src(paths.css + '/*.map', read: false) .pipe(rimraf( force: true)); ); code 然后你把这个:code gulp.task('build', ['compass', 'deleteMap']); code @DomiAlex 是的,这会删除地图,但最初仍会创建地图 - 这就是指南针过程缓慢的原因。 我从没想过这会减慢指南针的速度。有趣的。你也应该在我提出的问题中发布这个:github.com/appleboy/gulp-compass/issues/70 【参考方案1】:

您可以尝试使用 compass: true 选项运行 gulp-ruby-sass。这是您的任务更改为使用 gulp-ruby-sass:

gulp.task('compass', function() 
    return gulp.src(['sass/screen.scss', 'sass/screen_fallback.scss']).pipe(rubysass(
        'sourcemap=none': true,
        compass: true
    )).on('error', function(err) 
        notify(
            message: err
        )
    ).pipe(notify(
        message: 'Compass processed.'
    )).pipe(minifycss()).pipe(rename(
        suffix: '.min'
    )).pipe(gulp.dest('css')).pipe(notify(
        message: 'CSS minified.'
    ));
);

【讨论】:

这解决了我的问题。 Gulp-ruby-sass 在使用引导程序时会中断,因为它找不到图标字体路径。我必须在 config.rb 中设置 font_dir,然后告诉 gulp-ruby-sass 使用 compass。这解决了我的特定问题。

以上是关于禁用指南针/scss 源地图的主要内容,如果未能解决你的问题,请参考以下文章

scss 指南针 - 过渡短hand.scss

scss 指南针视网膜sprites.scss

scss 指南针视网膜sprites.scss

scss 指南针スニペット

scss 指南针スニペット

scss 指南针mixin背景椭圆+后备