【发布时间】:2013-12-10 14:18:24
【问题描述】:
我需要在以下文件夹结构上运行compass watch:
| config.rb
| rakefile.rb
+---folder1
| +---css
| +---img
| +---js
| \---sass
|
+---folder2
| +---css
| +---img
| +---js
| \---sass
|
\---folder3
+---css
+---img
+---js
\---sass
我将 config.rb 保留在外面,因为它都包含相同的 js、img、css 文件夹配置和相同的 :output 设置。
这是我的 rakefile.rb 以查看所有文件夹:
desc 'Compile folder1 sass'
task :watch_1 do
puts 'Watching folder1 sass...'
system 'compass watch --sass-dir folder1/sass --css-dir folder1/css -c config.rb'
end
desc 'Compile folder2 sass'
task :watch_2 do
puts 'Watching folder2 sass...'
system 'compass watch --sass-dir folder2/sass --css-dir folder2/css -c config.rb'
end
desc 'Compile folder3 sass'
task :watch_3 do
puts 'Watching folder3 sass...'
system 'compass watch --sass-dir folder3/sass --css-dir folder3/css -c config.rb'
end
# Watch all sass folder to compile css.
multitask :watch_all => [:watch_1, :watch_2, :watch_3] do
puts 'Watching all...'
end
我的问题是......当我有新文件夹时,我如何循环并在 rakefile.rb 中运行任务?我四处阅读,但我坚持创建任务。这是我的伪代码:
$folders = ['folder1', 'folder2', ... , 'folderN'];
foreach $folder in $folders do
system 'compass watch --sass-dir $folder/sass --css-dir $folder/css -c config.rb'
end
【问题讨论】:
-
为什么需要这样分解文件?
-
这是一个后端供应商的要求,因为该文件夹将用于不同的国家、不同的服务器、不同的开发人员、不同的权限等使用。
标签: ruby sass compass-sass rakefile