我试图使用相同的文件来编译多个主题。我的文件夹结构如下
-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.scss
和red.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-
文件。编译后的文件将是:main-green1.css
body {
background-color: #00cc00;
color: #003300;
}
main-green2.css
body {
background-color: #003300;
color: #00cc00;
}
main-red1.css
body {
background-color: #e50000;
color: #330000;
}
main-red2.css
body {
background-color: #330000;
color: #e50000;
}
关于css - 如何在gulp-sass中编译多个主题?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37123058/