更改Sass中的缩进方式

6

当使用Sass时,我该如何将输出的CSS文件中缩进从2个空格改为4个空格? 我正在使用展开(expanded)风格。我对Ruby一无所知,但我尝试阅读了计算机上/Library/Ruby/Gems/1.8/gems/sass-3.2.1/中的每个rb文件。


我曾经问过自己同样的问题,但到目前为止还没有找到答案。我很好奇。 - markus
3个回答

9

sass-3.2.3/lib/sass/tree/visitors/to_css.rb文件中有一些硬编码的双空格字符串(' '),用于缩进。如果您将它们全部替换为四个空格字符串,则可以按照您所述的方式编译CSS。


谢谢你的回答,但这对我没有效果。实际上这是我尝试的第一件事。缩进保持在2个空格上。 - Matti Mehtonen
你是如何编译你的Sass文件的? - Zach Kemp
3
我正在Mac终端上使用"watch"命令编译Sass文件。之前的回答其实是正确的,但我需要更新我的Sass版本到sass-3.2.3。现在缩进可以正常工作了!非常感谢Zach! :) - Matti Mehtonen

1
正确更改Sass缩进的方法是转到rubygems/gems/sass-3.x.x/lib/sass/tree/visitors/to_css.rb(或任何您的to_css.rb文件所在的位置),并编辑以下内容:tab_str = ' ' * (@tabs + node.tabs)

0

由于这是关于sass缩进的问题的参考问题,截至目前(2019年12月),被接受的答案已经过时了;我添加此答案。
根据{{link1:sass文档}},在其选项中,它接受两个名为indentTypeindentWidth的选项来控制缩进行为。
默认情况下使用4个空格,可以更改为1个制表符,如下所示:

function css() {
    return gulp
    .src("./scss/**/*.scss")
    .pipe(plumber())
    .pipe(sass({
        outputStyle: "expanded",
        includePaths: "./node_modules",
        indentType: "tab",
        indentWidth: 1
    }))
    .on("error", sass.logError)
    .pipe(autoprefixer({
        cascade: false
    }))
    .pipe(header(banner, {
        pkg: pkg
    }))
    .pipe(gulp.dest("./css"))
    .pipe(rename({
        suffix: ".min"
    }))
    .pipe(cleanCSS())
    .pipe(gulp.dest("./css"))
    .pipe(browsersync.stream());
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接