5

我想在一个命令中编译/观看 Compass/SCSS 文件,分布在多个文件夹中。据我所知,没有办法配置多个 SCSS 文件夹,再加上单独的 CSS 输出文件夹。

add_import_path几乎是我需要的,但我看不到设置sass_dir每个导入路径的方法。

有没有办法做到这一点?
这个 Quora 回答说没有,但我仍然抱有希望:)


更新:示例目录结构:

  • users/user1/css/ <- scss 目录
  • users/user1/css/generated/ <- 生成的css目录
  • 用户/user2/css/
  • 用户/user2/css/生成/
  • 主题/theme1/css/
  • 主题/theme1/css/生成/
  • 主题/theme2/css/
  • 主题/theme2/css/生成/
4

2 回答 2

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的更多信息和一个关于编写 rake 任务的好教程

干杯!

于 2013-06-01T14:30:54.683 回答
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

运行“compass compile -c sass/prodConfig.rb sass/dynamic/ xxx .scss”

现在我们在变量cid的 prodConfig.rb 中有“ xxx ”

于 2013-10-20T04:48:39.790 回答