带有多个输入/输出文件夹的指南针

Zna*_*kus 5 compass-sass

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

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

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


更新:示例目录结构:

  • users/user1/css/< - scss目录
  • users/user1/css/generated/< - 生成的css目录
  • 用户/用户2/CSS /
  • 用户/用户2/CSS /生成/
  • 主题/ THEME1/CSS /
  • 主题/ THEME1/CSS /生成/
  • 主题/ THEME2/CSS /
  • 主题/ THEME2/CSS /生成/

fmq*_*lia 3

我不知道你是否想将所有这些分散的 SASS 文件编译到一个已编译的 CSS 中。如果是这样的话,我恐怕不知道如何帮助你。

但是,如果您想要多个文件,一种可能的解决方案是使用 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
Run Code Online (Sandbox Code Playgroud)

然后,您只需运行多任务rake stylesheets:watch_all,所有子任务都会在线程中运行其命令。

这个 rake 任务可以得到很大的改进,因为它们是重复性的,通过一些约定,您甚至可以通过 .yml 文件配置它,但希望能给您一些关于可以使用 Rake 做什么的想法。

这里有一些关于Rake的更多信息以及关于编写 rake 任务的很好的教程

干杯!