Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- const gulp = require("gulp");
- const sass = require('gulp-sass');
- const autoprefixer = require('autoprefixer');
- const sourcemaps = require('gulp-sourcemaps');
- const livereload = require('gulp-livereload');
- const export_sass = require('node-sass-export');
- const sassGlob = require('gulp-sass-glob');
- const postcss = require('gulp-postcss');
- const base_64 = require('postcss-inline-base64');
- const minify = require("gulp-minify");
- const catch_error = (err) => {
- console.log(err.toString());
- this.emit('end');
- };
- function theme_scss() {
- return gulp
- .src('web/themes/yat/scss/**/*.scss')
- .pipe(sourcemaps.init())
- .pipe(sassGlob())
- .pipe(sass(
- {
- functions: export_sass('web/themes/yat')
- }
- ))
- .on('error', catch_error)
- .pipe(postcss([
- base_64({useCache: false}),
- autoprefixer({browsers: ['last 2 versions'], cascade: false}),
- ]))
- .pipe(sourcemaps.mapSources(function (sourcePath) {
- return '../' + sourcePath.replace(/.*\./, '') + '/' + sourcePath;
- }))
- .pipe(sourcemaps.write(''))
- .pipe(gulp.dest('web/themes/yat/css'))
- .pipe(livereload())
- }
- function module_scss() {
- return gulp
- .src('web/modules/custom/**/*.scss')
- .pipe(sourcemaps.init())
- .pipe(sass())
- .on('error', catch_error)
- .pipe(postcss([
- base_64({useCache: false}),
- autoprefixer({browsers: ['last 2 versions'], cascade: false}),
- ]))
- .pipe(sourcemaps.mapSources(function (sourcePath) {
- return sourcePath.replace(/.*\//, '');
- }))
- .pipe(sourcemaps.write(''))
- .pipe(gulp.dest('web/modules/custom'))
- .pipe(livereload())
- }
- function module_js() {
- const fold = 'web/modules/custom';
- return gulp
- .src([`${fold}/**/*.js`, `!${fold}/**/*min.js`])
- .pipe(sourcemaps.init())
- .pipe(sourcemaps.identityMap())
- .pipe(minify({
- ext: {
- min: '.min.js'
- },
- noSource: true
- }))
- .on('error', catch_error)
- .pipe(sourcemaps.mapSources(function (sourcePath) {
- return sourcePath.replace(/.*\//, '');
- }))
- .pipe(sourcemaps.write(''))
- .pipe(gulp.dest(fold))
- }
- function watch() {
- livereload.listen();
- theme_scss();
- module_scss();
- module_js();
- gulp.watch('web/themes/yat/scss/**/*.scss', gulp.series(theme_scss));
- gulp.watch('web/modules/custom/**/*.scss', gulp.series(module_scss));
- gulp.watch(['web/modules/custom/**/*.js', '!web/modules/custom/**/*min.js'], gulp.series(module_js));
- }
- exports.theme_scss = theme_scss;
- exports.default = exports.build = gulp.series(
- theme_scss,
- module_scss,
- module_js
- );
- exports.watch = watch;
- exports.module_js = gulp.series(module_js);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement