SASS minifier可以删除重复的样式吗?

Mar*_*utz 20 css sass

我知道css规则相当复杂; 但是,优化器可以通过多种方式简单地减少以下css吗?如果是这样,在rails-sass宝石中有它的选项吗?

span {
    background: red;
    color: green;
}

.test2 {
    background: red;
    color: green;
}

span {
    background: green;
    color: inherit;
}

.test2 {
    background: inherit !important;
    color: inherit;
    color: inherit;
    color: inherit;
}
Run Code Online (Sandbox Code Playgroud)

附加背景:

为了帮助澄清,我还提出以下建议......

资源:

span {
    background: red;
}
span {
    background: orange;
    color: green;
}
span {
    background: yellow;
}
span {
    background: blue;
    color: green;
}
Run Code Online (Sandbox Code Playgroud)

而且,我希望编译器生成以下内容:

span {
    background: blue;
    color: green;
}
Run Code Online (Sandbox Code Playgroud)

我知道有多余的样式,但是在不断修改样式表时会发生这种情况很多次,我想要消除死代码.

Mar*_*utz 5

我想我可能已经找到了一种方法,至少可以在css和sass/less模板中找到重复的样式:

开源csscss宝石http://zmoazeni.github.io/csscss/

它似乎能够检测到重复,虽然我不得不在bootstrap-sass gem的css周围修补补丁不在我的css资产的同一个文件夹中.

从文档中,您可以运行:

$ csscss -v path/to/styles.css
Run Code Online (Sandbox Code Playgroud)

要么

$ csscss -v path/to/styles.css.scss
Run Code Online (Sandbox Code Playgroud)

  • "虽然我不得不在bootstrap-sass gem的css周围修补补丁而不是与我的css资产在同一个文件夹中." - 请在[github](https://github.com/zmoazeni/csscss/issues)上提交问题.我想知道你在尝试什么,什么不起作用. (3认同)

leo*_*pic 1

据我所知,SASS只会以不同的方式格式化您的代码,但不会为您优化它http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#output_style

扩展 Whymarr 的评论,CSSTidy 有一个命令行实用程序,可以集成到构建过程或类似的过程中,http://packages.ubuntu.com/hardy/csstidy

  • 如果你安装了node.js,就会有[csso](https://github.com/css/csso),它看起来像是正在积极维护。该手册解释了它将进行哪些优化。 (4认同)