我想在一个命令中编译/观看Compass / SCSS文件,分布在多个文件夹中。据我所知,没有办法配置多个SCSS文件夹,再加上单独的CSS输出文件夹。
add_import_path
几乎就是我所需要的,但我没有办法为每个导入路径设置sass_dir
。
有没有办法做到这一点?
This Quora answer说没有,但我仍然抱有希望:)。
更新:示例目录结构:
答案 0 :(得分:3)
我不知道你是否想在一个编译的CSS中编译所有这些分散的SASS文件。如果是这样的话,恐怕我不知道如何帮助你。
但是,如果您想要多个文件,一种可能的解决方案是使用Rake。
如何在一个Rake任务中包装所需的所有监视命令,然后执行此类任务以便立即运行它们。
namespace :stylesheets do
desc 'Watches dynamic stylesheets for user 1 to compile changes'
task :watch_user1 do
puts 'Watching first set of stylesheets...'
system 'compass watch --sass-dir users/user1/css --css-dir users/user1/css/generated -c config/compass.rb'
end
desc 'Watches dynamic stylesheets for user 2 to compile changes'
task :watch_user2 do
puts 'Watching second set of stylesheets...'
system 'compass watch --sass-dir users/user2/css --css-dir users/user2/css/generated -c config/compass.rb'
end
desc 'Watches dynamic stylesheet all to compile changes'
multitask watch_all: ['stylesheets:watch_user1', 'stylesheets:watch_user2'] do
puts 'watching all...'
end
end
然后你只需运行多任务rake stylesheets:watch_all
,就会发出所有子任务在线程中运行命令。
这些rake任务可以大大改进,因为它们是重复的,并且通过一些约定,你甚至可以通过.yml文件配置它,但希望能给你关于你可以用Rake做什么的想法。
以下是Rake和nice tutorial about writing rake tasks
的更多信息干杯!
答案 1 :(得分:0)
您可以从命令行中拾取单个scss文件路径。
prodConfig.rb 的例子:
cid = ARGV[0] || "default"
cid = cid.sub(/\.scss$/,'').sub(/^.*\//,'')
puts "making with cid="+cid
http_path ="/fcss/" + cid + "/"
css_dir = "public/fcss/"+cid
sass_dir = "sass"
images_dir = "sass/img"
generated_images_dir="public/fcss/"+cid+"/img"
http_images_path="/fcss/"+cid+"/img/"
output_style = :expanded #: :compressed
运行“罗盘编译-c sass / prodConfig.rb sass / dynamic / xxx .scss”
现在我们在变量 cid中的prodConfig.rb中有“ xxx ”