哪种输出样式删除多行注释?

时间:2013-05-30 19:30:24

标签: comments sass

在SCSS文件中,哪个输出样式(nested, expanded, compact or compressed)将从最终的CSS中删除多行(/* I'm a comment. */)注释?

3 个答案:

答案 0 :(得分:11)

:compressed是唯一的输出样式,它将从最终呈现的CSS中删除多行(/* ... */)注释。

此外,:compact会将多行注释转换为最终CSS中的单行。使用:嵌套和:展开,所有多行注释及其换行符都在最终的CSS中呈现。

例如,这个SCSS:

// SL Comment

/* ML Comment1
   Whoop. */

//! SL w/ bang

/*! ML Comment2
    Whoop. */
对于每种不同的输出样式,

将成为以下CSS:

嵌套:

/* ML Comment1
   Whoop. */
/* ML Comment2  
    Whoop. */

展开:

/* ML Comment1
   Whoop. */
/* ML Comment2
    Whoop. */

紧凑:

/* ML Comment1 Whoop. */
/* ML Comment2 
    Whoop. */

压缩:

/* ML Comment2
    Whoop. */

使用!开始发表评论只会影响:compressed模式下的多行评论,否则这些评论会从最终的CSS中删除。

答案 1 :(得分:1)

即使输出样式为“压缩”,我也无法删除多行注释,而sass / scss文档也表明它们未被删除(仅删除带有“//”的单行注释)

我的解决方案是在sass生成最终输出后,简单地应用Perl one-liner手动删除.css文件中的注释:

sass -fCE utf-8 -t compressed application.sass application.css
perl -pi -e'BEGIN{$/=undef}s#/\*.*?\*/##gs' application.css

答案 2 :(得分:0)

遗憾的是,我无法对接受的答案进行投票或评论。按照文档的说法,所写的和接受的内容是不真实的。 Sass只删除单行代码并保留多行注释。

  

Sass支持使用/ * * /的标准多行CSS注释,以及带//的单行注释。多行注释尽可能保留在CSS输出中,同时删除单行注释。

See here for the docs.