当使用Sass时,我该如何将输出的CSS文件中缩进从2个空格改为4个空格? 我正在使用展开(expanded)风格。我对Ruby一无所知,但我尝试阅读了计算机上/Library/Ruby/Gems/1.8/gems/sass-3.2.1/
中的每个rb文件。
sass-3.2.3/lib/sass/tree/visitors/to_css.rb
文件中有一些硬编码的双空格字符串(' '
),用于缩进。如果您将它们全部替换为四个空格字符串,则可以按照您所述的方式编译CSS。
rubygems/gems/sass-3.x.x/lib/sass/tree/visitors/to_css.rb
(或任何您的to_css.rb文件所在的位置),并编辑以下内容:tab_str = ' ' * (@tabs + node.tabs)
。由于这是关于sass
缩进的问题的参考问题,截至目前(2019年12月),被接受的答案已经过时了;我添加此答案。
根据{{link1:sass
文档}},在其选项中,它接受两个名为indentType
和indentWidth
的选项来控制缩进行为。
默认情况下使用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());
}