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