【问题标题】:How to compile multiple themes in gulp-sass?如何在 gulp-sass 中编译多个主题?
【发布时间】:2016-05-09 18:37:12
【问题描述】:

我尝试使用相同的文件编译多个主题。我的文件夹结构如下

-styles
  green.scss
  red.scss
  -scss
     -control1.scss
     -control2.scss

我需要基于绿色和红色主题的 control1 和 control2 css 文件的输出。

     var gulp = require('gulp');         
     var sass = require('gulp-sass');
     var config = {
        includePaths: [
          './styles/green.scss',
          './styles/red.scss'       
        ]       
    };
     gulp.src('./styles/scss/*.scss')
        .pipe(sass(config).on('error', sass.logError))
        .pipe(gulp.dest('./style/css/'));

我是 gulp-sass 的新手,请任何人建议 gulp-sass 或 node-sass 中是否有任何选项可以生成多个主题?

我需要得到输出

-styles
 -css
   -green.control1.css
   -green.control2.css
   -red.control1.css
   -red.control2.css

【问题讨论】:

    标签: css sass gulp-sass node-sass


    【解决方案1】:

    我会将您的文件组织更改为以下设置。接下来我将解释新文件:

    -styles
      main-green1.scss
      main-green2.scss
      main-red1.scss
      main-red2.scss  
    
      - colors
        - green.scss
        - red.scss
      -controls
         -control1.scss
         -control2.scss
    

    至于那些新的.scss 文件。每个文件都会导入一个颜色文件和一个控制文件。例如,main-green1.scss 将是:

    @import 'colors/green';
    @import 'controls/control1';
    

    main-green2.scss 将是:

    @import 'colors/green';
    @import 'controls/control2';
    

    只要green.scssred.scss 中的变量名相同,您就会得到想要的结果。这是一个更详细的示例:

    green.scss

    $color: #00cc00;
    $background: #003300;
    

    red.scss

    $color: #e50000;
    $background: #330000;
    

    control1.scss

    body {
      background-color: $background;
      color: $color;
    }
    

    control2.scss

    body {
      background-color: $color;
      color: $background;
    }
    

    您将更改 Gulp 脚本以构建新的 main- 文件。编译后的文件是:

    ma​​in-green1.css

    body {
      background-color: #00cc00;
      color: #003300;
    }
    

    ma​​in-green2.css

    body {
      background-color: #003300;
      color: #00cc00;
    }
    

    ma​​in-red1.css

    body {
      background-color: #e50000;
      color: #330000;
    }
    

    ma​​in-red2.css

    body {
      background-color: #330000;
      color: #e50000;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-05
      • 2017-05-03
      • 2014-07-04
      • 1970-01-01
      相关资源
      最近更新 更多