Gulp plugin that enables glob-style imports in Sass/SCSS files for automated directory-based stylesheets inclusion.
npx @tessl/cli install tessl/npm-gulp-sass-glob@0.0.0Gulp Sass Glob is a Gulp plugin that extends gulp-sass functionality to support glob-style imports in Sass/SCSS files. It allows developers to use wildcard patterns like @import "vars/*" to automatically import all files from a directory, eliminating the need to manually list each import.
npm install gulp-sass-glob --save-devconst sassGlob = require('gulp-sass-glob');Sass/SCSS file with glob imports:
@import "vars/*";
@import "mixins/*";
@import "../views/*";
@import "../components/*";Gulpfile configuration:
const gulp = require('gulp');
const sass = require('gulp-sass');
const sassGlob = require('gulp-sass-glob');
gulp.task('styles', function () {
return gulp
.src('src/styles/main.scss')
.pipe(sassGlob())
.pipe(sass())
.pipe(gulp.dest('dist/styles'));
});The module exports a single function as the default CommonJS export that creates a Gulp plugin transform stream.
/**
* Creates a Gulp plugin transform stream for processing glob imports in Sass/SCSS files
* @returns {NodeJS.ReadWriteStream} through2 transform stream for Gulp pipeline
*/
function gulpSassGlobbing(): NodeJS.ReadWriteStream;
// Export pattern
module.exports = gulpSassGlobbing;How it works:
@import statements containing glob patterns (using * wildcards)glob library to find all matching Sass/SCSS files based on the pattern@import statements for each matching file_).sass or .scss extensionsSupported patterns:
@import "directory/*" - Imports all Sass/SCSS files in the directory@import "../path/to/files/*" - Supports relative pathsPattern matching details:
/@import\s+\"([^\"]*\*[^\"]*)\"/File processing rules:
.sass and .scss files are processed for import generation_ (underscore) are ignored@import "path/to/file";Integration with Gulp:
The plugin integrates seamlessly with Gulp build pipelines and should be placed before the gulp-sass plugin in the pipeline to ensure glob patterns are expanded before Sass compilation.
The plugin handles common error scenarios:
@import statements with double quotes containing glob patterns.sass or .scss extensions*) patterns// Built-in Node.js stream type for Gulp plugin compatibility
interface NodeJS.ReadWriteStream extends NodeJS.ReadableStream, NodeJS.WritableStream {}