问题 SASS / Compass可以将foo.scss编译为foo.min.css和foo.dbg.css吗?


我想编译一组 .scss 文件到不同的文件名。

在开发中,我想编译例如。 foo.scss 至 foo.dbg.css (未经宣传和评论)。在制作中,我希望有例如。 foo.min.css (精缩)。

有没有办法告诉SASS / Compass什么用作目标扩展?命令行开关?一个 config.rb 选项?

编写首先编译然后重命名文件的脚本似乎是一个糟糕的选择,因为那时我无法使用 compass watch 有效率的。

(好吧,我 可以 编译到两个不同的输出目录,然后编写一个从那里复制文件的脚本。感觉有点笨拙。)

更新: 我通过编写手表代码的简化版本解决了这个问题。当某些内容发生变化时,它会触发重新编译到两个不同的输出目录,然后重命名并将文件移动到位。


1074
2017-09-13 10:48


起源

我真的对你很感兴趣 解决方法!你能和我们分享一下吗? - yckart
嗨@tuomassalo,如果你有机会发布它,我也对解决方法感兴趣。 - mtpultz


答案:


不,它不能。我在邮件列表中询问了有关RTL样式表的相同问题。 但是,您可以使用不同的“config.rb”文件运行罗盘编译。 尝试 compass compile -c debug.rb

UPDATE:指南针仍然不能,但Gulp可以使用Sass和Compass观察并生成几个目标css文件。看到 https://github.com/Snugug/gulp-css-target/


4
2017-09-13 18:05



我不知道你是否可以运行两个终端 compass watch 在同一个项目上。但如果你能,那你得到它;) - Capi Etheriel
这还是真的吗? - mtpultz
@mtpultz如果有人尝试并报告更好的结果我会很乐意更新这个答案。欢迎日志:) - Capi Etheriel


我无法得到Alireza Fattahi的工作答案,因为它丢错了所以我找到了另一个适合我的例子

http://h3r2on.com/2013/05/17/rename-css-on-compile.html

require "fileutils"

on_stylesheet_saved do |file|
  if File.exists?(file)
    filename = File.basename(file, File.extname(file))
    File.rename(file, css_dir + "/" + filename + ".min" + File.extname(file))
  end
end

6
2017-08-18 13:42



谢谢!与Alireza的答案有同样的问题。 - mtpultz
这是正确答案:) - numediaweb
如果它在文件夹中不起作用。示例assets / scss / module1 / module1.scss应该是assets / css / module1 / module1.min.css但是变为assets / css / module1.min.css - vee


您可以将其添加到您的配置中。

请参见 https://github.com/sbspk/Prepros/issues/38

require 'fileutils'

on_stylesheet_saved do |file|

  if file.match('.min') == nil

    require 'compass'

    Compass.add_configuration(
        {
            :project_path => File.dirname(File.dirname(file)),
            :sass_dir => File.basename(File.dirname(file)),
            :css_path => File.basename(File.dirname(file)),
            :output_style => :compressed
        },
        'alwaysmin' # A name for the configuration, can be anything you want
    )
    Compass.compiler.compile(File.dirname(file) + "/" + File.basename(file, '.css') + '.scss', File.dirname(file) + "/" + File.basename(file, '.css') + ".min.css")

  end

end

2
2018-01-08 06:23