我想将一组.scss
文件编译为不同的文件名。
在开发中,我想编译例如。 foo.scss
到foo.dbg.css
(未提及且有评论)。在制作中,我希望有例如。 foo.min.css
(缩小)。
有没有办法告诉SASS / Compass什么用作目标扩展?命令行开关? config.rb
选项?
编写首先编译然后重命名文件的脚本似乎是一个糟糕的选择,因为那时我无法有效地使用compass watch
。
(好吧,我可以编译到两个不同的输出目录,然后编写一个从那里复制文件的脚本。这感觉有点笨拙。)
更新:我通过编写监控代码的简化版本解决了这个问题。当某些内容发生变化时,它会触发重新编译到两个不同的输出目录,然后重命名并将文件移动到位。
答案 0 :(得分:6)
我无法得到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
答案 1 :(得分:4)
不,不能。我在邮件列表中询问了有关RTL样式表的相同问题。
但是,您可以使用不同的“config.rb”文件运行罗盘编译。
试试compass compile -c debug.rb
。
UPDATE :指南针仍然不能,但Gulp可以使用Sass和Compass观察并生成多个目标css文件。见https://github.com/Snugug/gulp-css-target/
答案 2 :(得分:2)
您可以将其添加到您的配置中。
请参阅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