51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
const gulp = require('gulp');
|
|
const sass = require('sass');
|
|
const gulpSass = require('gulp-sass')(sass); // Gulp pluign for Sass compilation.
|
|
const mergeStream = require('merge-stream');
|
|
|
|
const rename = require('gulp-rename'); // Renames files E.g. style.css -> style.min.css
|
|
|
|
// Style related.
|
|
const postcss = require('gulp-postcss'); // Transforming styles with JS plugins
|
|
const rtlcss = require('rtlcss'); // Convert LTR CSS to RTL.
|
|
|
|
const config = require('./gulpConfig');
|
|
|
|
gulp.task('styles', () => {
|
|
const builds = config.style.build.map((build) => {
|
|
return gulp
|
|
.src(build.src)
|
|
.pipe(gulpSass(config.style.sass))
|
|
.pipe(gulp.dest(build.dest));
|
|
});
|
|
return mergeStream(builds);
|
|
});
|
|
|
|
/**
|
|
* Task: `styles-rtl`
|
|
*
|
|
* This task does the following.
|
|
* 1. Gets the source css files.
|
|
* 2. Covert LTR CSS to RTL.
|
|
* 3. Suffix all CSS files to `-rtl`.
|
|
* 4. Reloads css files via browser sync stream.
|
|
* 5. Combine matching media queries for `.min.css` version.
|
|
* 6. Minify all CSS files.
|
|
* 7. Reload minified css files via browser sync stream.
|
|
*/
|
|
gulp.task('styles-rtl', () => {
|
|
const builds = config.style.rtl.map((build) => {
|
|
return gulp
|
|
.src(build.src)
|
|
.pipe(
|
|
postcss([
|
|
rtlcss(config.style.rtlcss), // Convert LTR CSS to RTL.
|
|
]),
|
|
)
|
|
.pipe(rename({ suffix: '-rtl' })) // Append "-rtl" to the filename.
|
|
.pipe(gulp.dest(build.dest));
|
|
});
|
|
|
|
return mergeStream(builds);
|
|
});
|