css - 将子文件夹中的所有文件从 SASS 编译为 CSS
问题描述
我正在尝试将一组 scss 文件编译成一个 css 文件。例如,这是我的文件夹结构:
theme
- assets
- src
- sass
- config
- _grid-system.scss
- _variables.scss
- _client-styles.scss
- _typography.scss
- styles.scss
综上所述,我希望将其编译_client-styles.scss
成_typography.scss
一个 css 文件。这个新的 CSS 文件将位于同一个文件夹中,名为 core.css(位于该sass
文件夹下)。
我已经gulpfile.js
设置将所有.scss
文件编译到同一文件夹中的 css 中。但不知道如何处理这种转换,因为我想忽略该styles.scss
文件。
当前gulpfile.js
:
'use strict';
var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('autoprefixer');
var postcss = require('gulp-postcss');
var paths = {
styles: {
src: 'modules/**/*.scss',
dest: 'modules'
}
}
function scss() {
return gulp.src(paths.styles.src)
.pipe(sass().on('error', sass.logError))
.pipe(sass({ outputStyle: 'compressed' }))
.pipe(postcss([autoprefixer()]))
.pipe(gulp.dest(paths.styles.dest));
}
exports.scss = scss
function watch() {
scss();
gulp.watch(paths.styles.src, scss);
}
exports.watch = watch
长什么样styles.scss
子(供参考):
@import "config/**.scss";
@import "client-styles.scss";
@import "typography.scss";
我该怎么做?将 '_client-styles.scss' 和 '_typography.scss' 文件编译到位于sass
文件夹下的 'core.css' 中:
主题 - 资产 - src - sass - 配置 - _grid-system.scss - _variables.scss - _client-styles.scss - _typography.scss -styles.scss - core.css(此处为新文件)
解决方案
您可以创建一个core.scss
文件,您将在其中导入子文件夹中的所有 sass 文件,如下所示:
// change the path accordingly
@import "./sass/**/*.scss";
使用gulp-sass-glob您可以通过gulpfile.js
以下方式对其进行管道传输:
'use strict';
var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('autoprefixer');
var postcss = require('gulp-postcss');
var sassGlob = require("gulp-sass-glob");
var paths = {
styles: {
src: 'modules/**/*.scss',
dest: 'modules'
}
}
function scss() {
return gulp.src(paths.styles.src)
.pipe(sassGlob())
.pipe(sass().on('error', sass.logError))
.pipe(sass({ outputStyle: 'compressed' }))
.pipe(postcss([autoprefixer()]))
.pipe(gulp.dest(paths.styles.dest));
}
exports.scss = scss
function watch() {
scss();
gulp.watch(paths.styles.src, scss);
}
exports.watch = watch
推荐阅读
- bash - 解压和处理压缩数据
- javascript - 在浏览器中回击时,递归地将 Bootstrap 4 侧边栏扩展到先前的状态
- javascript - 闭包克隆更新原始对象
- r - 为数据集的每一行调用 r 中的自定义函数
- database - 如何在一个查询中检索树中每个节点的前 n 个子节点
- android - 屏幕方向更改后无法恢复 RecyclerView 状态,因为保存的状态为空。为什么?
- azure-iot-hub - 物联网边缘最佳实践
- tensorflow - 从张量流中的分布中采样非大小张量
- jquery - Coldfusion中的复选框更改时如何更新数据库?
- haskell - 用自己的证明丰富约束求解器