ruby - 如何忽略sass中的多行注释?

标签 ruby comments sass

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

// these comments are ignored

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

/*
 * multiline comments
 *
 */

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

If you really want, you can monkeypatch Sass to silence /* */ comments as well.

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

最佳答案

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

Sass mixin recursion; @include loop

现在我也可以帮你了!

1) 安装指南针

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

gem install compass

2) 配置指南针

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

css_dir = "stylesheets"
sass_dir = "sass"

3) 创建一个 monkey patch

在项目的根目录中创建一个名为 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 watch 让 Compass 命令行工具持续监控您的代码更改并重新编译您修改的部分。

注意事项

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

要重新启用多行注释,只需注释掉需要 monkey 补丁的行并执行 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

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

关于ruby - 如何忽略sass中的多行注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15720434/

相关文章:

ruby - 完成后如何在我的服务器上运行我的第一个 ruby​​ 应用程序?

c++ - 如何防止 yaml-cpp 解析器删除所有注释?

ruby-on-rails - SQLite3::SQLException:没有这样的列:关联和显示 View 有问题

javascript - 一起注释掉 HTML、CSS、Javascript 代码

css - 使用@supports selector() 尽管 Sass 不支持它

ruby - 为什么在尝试引用 Ruby 中的嵌套类时会出错?

ruby - High Sierra 中的 cocoapods 权限问题?

ruby-on-rails - 在 routes.rb 上为 Ruby on Rails 的根设置可选参数

css - 使用 --sourcemap 标志运行 Compass

javascript - 通配符具有相同的类然后取 css 的第一个 child