css - 如何在 gulp-sass 中编译多个主题?

标签 css sass gulp-sass node-sass

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

-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

最佳答案

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

-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 中的变量名称相同,您最终就会得到所需的结果。这是一个更详细的示例:

绿色.scss

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

红色.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;
}

关于css - 如何在 gulp-sass 中编译多个主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37123058/

相关文章:

Gulp watch 不适用于导入的文件,但适用于主文件

jquery - 一个接一个地动画化两个 Div

javascript - 每当 div 在 mootools 中增加或减少时如何调用函数

html - 表格内部的 Div 错位

css - 网页包 4 : mini-css-extract-plugin + sass-loader + splitChunks

sass - 有没有办法在没有变量的情况下在 sass 中获取祖 parent 姓名?

node.js - 无法在 Windows 64 位和 Node.js 10.x 中使用 node-sass?

asp.net - MVC Html.BeginForm CSS

css - 带有 SVG 的按钮文本没有垂直居中

css - Gulp - 延迟更新文件