9

In an SCSS file, which output style(s) (nested, expanded, compact or compressed) will remove multiline (/* I'm a comment. */) comments from the final CSS?

4

3 回答 3

15

:compressed是唯一可以从最终渲染的 CSS 中删除多行 ( /* ... */) 注释的输出样式。

此外, :compact 会将多行注释转换为最终 CSS 中的单行。使用 :nested 和 :expanded,所有多行注释及其换行符都会在最终的 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 中删除时,它们将被保留。

于 2013-05-30T21:23:45.173 回答
3

即使使用“压缩”输出样式,我也无法删除多行注释,sass/scss 文档也建议不删除它们(仅删除带有“//”的单行注释)。

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

sass -fCE utf-8 -t compressed application.sass application.css
perl -pi -e'BEGIN{$/=undef}s#/\*.*?\*/##gs' application.css
于 2014-06-21T16:20:03.490 回答
3

很遗憾,我不能对已接受的答案投反对票或评论。根据文档,所写和接受的内容是不真实的。Sass 只删除单行代码并保留多行注释。

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

有关文档,请参见此处。

于 2017-10-12T14:29:32.533 回答