11

我正在使用 Compass + Sass 来管理/合并我的.css文件。所以我有以下文件夹结构:

Root
--Module
----css
----sass
--Module
----css
----sass
--Module
----css
----sass

这里是我想要实现的目标:在开发阶段,我想将 compass 指向我的根文件夹,它应该监视位于sass目录(在 each 中Module)的文件中的任何更改。一旦其中一个 .sass 文件发生更改 -.css应生成适当的文件(对于更改.sass所属的模块)并放入css同一 .sass 下的文件夹中Module

可能吗?

我猜我应该config.rb用于此目的,但我不确定如何正确执行此操作。有人可以指出我的解决方案还是仅仅描述如何做到这一点的一般想法?

编辑:我在 Windows 环境中,所以不能使用 Linux 命令(我可以安装 Cygwin,但我宁愿避免它)

谢谢

4

4 回答 4

4

我的文件夹结构设置不同:

  • 资产
    • 粗鲁的
      • 模块
        • _module1.scss
        • _module2.scss
        • _module3.scss
      • 屏幕.scss
    • 样式表
      • 屏幕.css
    • 配置文件

屏幕.scss:

@import "modules/module1";
@import "modules/module2";
@import "modules/module3";

配置.rb:

...
css_dir = "stylesheets"
sass_dir = "sass"
...

模块名称开头的下划线表示它们不会被编译成单独的 css 文件。导入语句将它们组合在一起,以便所有 css 最终组合在 screen.css 中。请注意,在导入语句中,您不需要下划线或 .scss。

如果您想维护单个 css 文件(这是您建议您想要做的),您可以稍微修改此结构。删除下划线,指南针将创建单个文件。

  • 资产
    • 粗鲁的
      • 模块
        • 模块1.scss
        • 模块2.scss
        • 模块3.scss
      • 屏幕.scss
    • 样式表
      • 模块
        • 模块1.css
        • 模块2.css
        • 模块3.css
      • 屏幕.css
    • 配置文件

在这种情况下,您不需要 screen.scss 中的任何导入语句,因为每个单独的文件都需要单独包含在 html 文档中。

在这两种情况下,您都将在 assets 文件夹中运行一次“compass watch”。请注意,您不需要在样式表目录中创建任何内容。指南针会这样做。

于 2012-10-13T01:48:04.313 回答
3

我发现的唯一解决方法是运行多个 Compass 实例 - 每个模块一个。我敢打赌,通过调整 Compass 源代码可能会有更优雅的解决方案,但不幸的是,我还不熟悉 Ruby……。

于 2012-07-17T21:01:40.830 回答
2

config.rb文件中使用additional_import_paths或更简单的。add_import_path

additional_import_paths 字符串数组系统上用于导入 sass 文件的其他路径。

add_import_path调用此函数为您的 compass 项目添加一个路径到 sass 导入路径列表。例如:add_import_path "/Users/chris/work/shared_sass"

请参阅此答案以及有关如何使用的示例add_import_path

来源: http ://compass-style.org/help/documentation/configuration-reference/

于 2016-09-18T14:39:10.687 回答
1

编译并观看几个独立的 Sass Compass 项目:https ://stackoverflow.com/a/39635064/6440953

于 2016-09-22T08:48:17.370 回答