【问题标题】:How to watch over SASS to generate compressed as well as expanded or a combination of other styles?如何监视 SASS 生成压缩以及扩展或其他样式的组合?
【发布时间】:2015-06-21 00:08:29
【问题描述】:

我正在使用 SASS。

但是如何从项目文件夹的根目录查看 SASS 文件(*.scss)以生成压缩(缩小)以及扩展(美化)或其他样式的组合?

SASS 文档中的参考似乎不是(新的)用户友好的。

【问题讨论】:

  • 没有办法只运行一次命令并以某种方式指定两种不同的样式,但为什么不在两个单独的终端中运行两个命令呢?
  • @mzgajner,好的,你的意思是说 SASS 命令行命令中没有我们可以组合多种样式的选项。对吗?

标签: css ruby sass


【解决方案1】:

如果(无论出于何种原因?)您需要同时存在两个输出变体,您可以使用像 Grunt 这样的任务运行器并定义两个不同的任务,然后同时运行它们。不过,您需要指定两个单独的输出目录,否则第二个任务会覆盖第一个任务的结果,如下所示:

sass: {
    expanded: {
        options: {
             style: 'expanded'
        },
        files: {
             'css-expanded/*.css': 'sass/*.scss'
        }
    }
    compressed: {
        options: {
             style: 'compressed'
        }
        files: {
             'css-compressed/*.css': 'sass/*.scss'
        }
    }
}

grunt.registerTask('compile': ['sass:expanded', 'sass:compressed']);

据推测,您可能不希望/需要同时输出两个版本的 css,我猜您希望在开发期间扩展输出以进行调试,并在构建项目时压缩输出? 如果是这种情况,您仍然需要指定两个 sass 任务/目标,但为每个任务定义一个单独的 grunt 任务(但使用相同的输出目录):

sass: {
    expanded: {
        options: {
             style: 'expanded'
        },
        files: {
             'css': 'sass/*.scss'
        }
    }
    compressed: {
        options: {
             style: 'compressed'
        }
        files: {
             'css': 'sass/*.scss'
        }
    }
}

grunt.registerTask('dev': ['sass:expanded']);
grunt.registerTask('build': ['sass:compressed'];

编辑: 如果您希望两个版本同时存在于同一个输出目录中,并且输出 css 文件不需要两个版本的相同名称,您当然可以为其中一个版本使用特定名称 *.css 和 @987654325 @:

sass: {
    expanded: {
        options: {
             style: 'expanded'
        },
        files: {
             'css-expanded/*.css': 'sass/*.scss'
        }
    }
    compressed: {
        options: {
             style: 'compressed'
        }
        files: {
             'css-compressed/*.min.css': 'sass/*.scss'
        }
    }
}

grunt.registerTask('compile': ['sass:expanded', 'sass:compressed']);

【讨论】:

  • 谢谢@FranzHeidl。这个解释非常详细和有帮助。但是,我正在寻找一种 SASS -watch 解决方案,它是一个 SASS 命令行命令。但是,您的回答很有帮助。但是您能否确认我们是否可以在 sass 命令本身中组合两种或多种样式。
  • 您将无法单独使用 CLI 中的 vanilla Sass(或 Compass)同时获得两种不同的编译输出样式。 Sass 采用一种样式选项(嵌套、压缩、扩展……)并根据指定的样式选项编译一次。
  • 为了获得两种不同的编译,您需要一个任务运行器来运行两个不同的编译任务(如上所述),或者,先运行一个编译任务,然后再运行一个缩小/丑化任务(这应该比运行两个编译任务更快)。
  • @FranxHeidl,是的,这就是我想知道的。
猜你喜欢
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 2019-04-02
  • 2019-12-03
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多