Compass在压缩SCSS文件时删除分号,导致CSS导入问题

时间:2015-08-25 12:10:46

标签: css gulp compass gulp-compass

这是我第一次尝试使用Compass并遇到有关Compass如何压缩SCSS文件的问题。

我有一个简单的.scss文件,其中包含以下代码:

@import url('//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css');

.fa-apple, .fa-android, .fa-twitter {
    font-size: 60px;
}

我设置了Gulp任务来编译文件,这是任务:

gulp.task('compass', function() {
    gulp.src('app/scss/style.scss')
        .pipe(compass({
            config_file: './config.rb',
            css: 'app/css',
            sass: 'app/scss',
            require: ['susy', 'breakpoint']
        }))
        .pipe(gulp.dest('app/css'));
});

这是我的config.rb

require 'susy'
require 'breakpoint'

project_type = :stand_alone
http_path = "/"
sass_dir = "app/scss"
css_dir = "app/css"
images_dir = "app/images"
fonts_dir = "app/fonts"
javascript_dir = "app/js"
line_comments = true
preferred_syntax = :scss
output_style = :compressed
relative_assets = true

因此,我将output_style设置为:compressed以缩小CSS结果。这就是我在结果css文件中得到的结果:

@import url("//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css").fa-apple,.fa-android,.fa-twitter{font-size:60px}

Compass删除了@import语句的结尾分号,这会在页面上产生意外的样式。

当我将output_style更改为:expanded时,由于保留了分号,因此该页面与未分隔的css版本配合良好。

有没有办法避免Compass删除分号?还有为什么会发生?

3 个答案:

答案 0 :(得分:1)

似乎sass的最新版本(3.4.17或3.4.18)正在这样做。

试试这个:

gem uninstall sass
gem install sass -v 3.4.16

它对我有用。如果您想尝试其他版本,可以在这里找到all versions of sass

答案 1 :(得分:1)

这听起来像fixed in 3.4.18

答案 2 :(得分:0)

不应该将导入文件的代码渲染为css吗?