8

有没有办法让 sass 在生成 css 文件时忽略多行注释:

// these comments are ignored

这些不是(仅在压缩模式下被忽略):

/*
 * multiline comments
 *
 */

我在 Github 上找到了这张,作者说:

如果你真的想要,你也可以对 Sass 进行猴子补丁以使 /* */ 评论静音。

但我不知道他所说的monkeypatch sass是什么意思,那我该怎么做呢?

4

2 回答 2

19

耶!我在回答这个问题时学习了猴子修补 SASS:

Sass mixin 递归;@include 循环

现在我也可以帮你!

1) 安装指南针

要使此解决方案起作用,您需要Compass。安装它:

gem install compass

2) 配置指南针

在项目的根目录中创建一个compass.rb文件并定义保存 SASS 和 CSS 代码的目录,例如:

css_dir = "stylesheets"
sass_dir = "sass"

3)创建猴子补丁

创建一个remove-all-comments-monkey-patch.rb在项目根目录中调用的文件:

class Sass::Tree::Visitors::Perform < Sass::Tree::Visitors::Base

  # Removes all comments completely
  def visit_comment(node)
    return []
  end

end

4) 需要猴子补丁config.rb

在 中config.rb,添加:

# Removing all comments by applying a monkey patch to SASS compiler
require "./remove-all-comments-monkey-patch"

5) 用 Compass 编译你的项目

用于compass compile将 SASS 编译成 CSS。您还可以使用compass watchCompass 命令行工具不断监视您的代码是否有更改并重新编译您修改的部分。

注意事项

这不会删除带有由 SASS 生成的行号的注释。要禁用它们,请注释掉该line_comments = trueconfig.rb或将其设置为 false。

要重新启用多行注释,只需注释掉需要猴子补丁的行并执行compass clean.

不要使用它!通过 Ctrl+/ 使用单行注释。

尽管此解决方案是可移植的,并且无需手动破解 SASS 代码即可适用于所有人,但您确实应该考虑使用允许使用单行注释将整个段落注释掉的 IDE。对我来说是Ctrl+ /

在这里,我为您拍摄了一个简短的视频,以展示使用多行评论实际上比使用多行评论更快更有效:http ://www.youtube.com/watch?feature=player_detailpage&v=DTyMAPZrwyc

行注释还可以让您在不破坏代码的情况下注释掉注释。

考虑您有以下代码:

foo

/* Bla bla */
bar

baz

你需要把它全部注释掉。如果你用/* */...包裹它

/*foo

/* Bla bla */
bar

baz*/

...然后你打破了密码!现在你有一个以 开头/*foo和结尾的注释,bla */还有一个语法错误baz*/

相反,只需选择整个代码并点击Ctrl+ /(前提是使用某些 IDE 或程序员的记事本),它会立即被注释掉:

//foo
//
///* Bla bla */
//bar
//
//baz

当然,以后可以使用相同的热键取消注释。

于 2013-04-02T14:16:19.073 回答
0

您可以将评论包装在未使用的 @mixin 中 - 这不是一个理想的修复方法,但它可以工作。

@mixin ignore {
    /*
      COMMENT
    */
}
于 2021-08-11T10:50:34.337 回答