我尝试使用相同的文件编译多个主题。我的文件夹结构如下
-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
答案 0 :(得分: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.scss
和red.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-
文件。编译的文件将是:
主要-green1.css 强>
body {
background-color: #00cc00;
color: #003300;
}
主要-green2.css 强>
body {
background-color: #003300;
color: #00cc00;
}
主要-red1.css 强>
body {
background-color: #e50000;
color: #330000;
}
主要-red2.css 强>
body {
background-color: #330000;
color: #e50000;
}