【问题标题】:SASS/Compass / Structure / CompileSASS/指南针/结构/编译
【发布时间】:2013-12-29 13:42:33
【问题描述】:

所以最后才来这里希望有人能伸出援手。

我正在 SASS-Bootstrap3 中构建一个项目

我的所有网站都已创建(其中 40 个)

我希望所有网站都运行同一个 bootstrap-sass.scss 文件: 上面提到的这个文件在多个文件 _forms.scss 上导入了部分引导程序 @import

现在我的 40 个网站 略有不同,但遵循相同的引导结构。

所以在他们拥有的每个站点 /assets/scss/ 文件夹中 变量.scss 覆盖.scss

我想要做的是自动编译全局共享(bootstrap-scss),其中包含每个站点的变量和覆盖。

所以输出将在每个站点/assets/css/ 文件夹。

对我来说,这似乎是一种非常明智的做事方式,特别是如果我每次对主要的 bootstrap-sass.scss 进行重大更新时都可以从批处理中运行它。

所以我的问题是如何合并来自不同目录的多个 .scss 文件。

亲切的问候, 蚂蚁。

【问题讨论】:

    标签: css twitter-bootstrap sass


    【解决方案1】:

    您可以从您正在处理的文件中导航到它们。

    假设设置是:

    /super-site
      /master
        /assets
          /scss
            _bootstrap-sass.scss
      /site-1
        /assets
          /scss
            _variables.scss
            _overrides.scss
            site-1.scss
      /site-2
        /assets
          /scss
            _variables.scss
            _overrides.scss
            site-2.scss
    

    这将是您的site-1.scss 文件。

    @import "variables";
    @import "overrides";
    @import "../../master/assets/scss/bootstrap-sass";
    

    但是,如果您从命令行运行 Sass,则可以使用 -I 设置加载路径。

    cd super-site
    sass -I super-site/master/assets/scss --watch site-1/assets/scss:site-1/assets/scss site-2/assets/scss:site-2/assets/scss
    

    那你就做吧

    @import "variables";
    @import "overrides";
    @import "bootstrap-sass"; 
    

    无需执行所有../ 操作。我确信有一个聪明的方法不必通过一些甜蜜的命令行操作来执行 site-1..site-40,但我对它不是很熟悉。

    【讨论】:

    • 非常感谢您的回复,比尔认为没有人会这样做;)所以您所说的有点道理。
    • 对不起,再一次,所以你的结构现在更有意义了,我不知道你可以从这样的外部目录导入
    • 是的!不客气。就像 CSS 一样。你曾经必须做background-image: url("../images/logo.png"); 或其他任何事情吗?同样的想法。
    • 同意!哈哈,我不知道我是怎么忽略了这一点,所以当我在 Site-2.scss 上做一个指南针手表时,所有的东西,比如 variables.scss / overrides.scss / bootstrap.scss 和它的所有孩子都会被观察到。对吗?
    • 我认为您需要查看整个目录而不仅仅是文件来检测@imported 文件是否更改。我可能错了。我会设置一个测试,试试看。
    猜你喜欢
    • 2018-08-17
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 2012-10-18
    相关资源
    最近更新 更多