%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/camaservice.eco-n-tech.co.uk/wp-content/themes/camaservice/
Upload File :
Create Path :
Current File : /var/www/camaservice.eco-n-tech.co.uk/wp-content/themes/camaservice/gulpfile.js

const localDomain = 'http://camaservice-new.local/'
const project_folder = 'dist'
const source_folder = 'src'

let path = {
    build: {
        html: project_folder + '/',
        css: project_folder + '/css/',
        js: project_folder + '/js/',
        img: project_folder + '/img/',
        fonts: project_folder + '/fonts/',
    },
    src: {
        css: source_folder + '/scss/main.scss',
        js: source_folder + '/js/main.js',
        img: source_folder + '/img/**/*.+(png|jpg|jpeg|ico|svg|webp)',
        fonts: source_folder + '/fonts/*',
    },
    watch: {
        css: source_folder + ['/scss/**/*.scss'],
        js: source_folder + '/js/**/*.js',
        img: source_folder + '/img/**/*.+(png|jpg|jpeg|ico|svg|webp)',
        fonts: source_folder + '/fonts/*',
    },
    clean: './' + project_folder + '/',
}

let { src, dest } = require('gulp'),
    gulp = require('gulp'),
    browsersync = require('browser-sync').create(),
    fileinclude = require('gulp-file-include'),
    del = require('del'),
    scss = require('gulp-sass')(require('sass')),
    autoprefixer = require('gulp-autoprefixer'),
    group_media = require('gulp-group-css-media-queries'),
    clean_css = require('gulp-clean-css'),
    rename = require('gulp-rename'),
    uglify = require('gulp-uglify-es').default,
    imagemin = require('gulp-imagemin'),
    webpack = require('webpack-stream')

// Browser Sync
function browserSync(params) {
    browsersync.init({
        files: ['**/*.php', '**/*.twig', 'dist/*.*'],
        proxy: localDomain,
        notify: false,
    })
}

// Images
function images() {
    return src(path.src.img).pipe(dest(path.build.img)).pipe(browsersync.stream())
}

// Fonts
function fonts() {
    return src(path.src.fonts).pipe(dest(path.build.fonts)).pipe(browsersync.stream())
}

// Images Compress
function img() {
    return src(path.src.img)
        .pipe(
            imagemin([
                imagemin.gifsicle({ interlaced: true }),
                imagemin.mozjpeg({ quality: 75, progressive: true }),
                imagemin.optipng({ optimizationLevel: 5 }),
                imagemin.svgo({
                    plugins: [{ removeViewBox: true }, { cleanupIDs: false }],
                }),
            ]),
        )
        .pipe(dest(path.build.img))
}

// JavaScript
function js() {
    return src(path.src.js)
        .pipe(fileinclude())
        .pipe(webpack({
            mode: "development",
            output: {
                filename: 'main.min.js'
            }
        }))
        .pipe(dest(path.build.js))
        .pipe(browsersync.stream())
}

// CSS
function css() {
    return src(path.src.css)
        .pipe(
            scss({
                outputStyle: 'expanded',
            }),
        )
        
        .pipe(group_media())
        .pipe(
            autoprefixer({
                cascade: true,
                overrideBrowserslist: ['last 5 versions'],
            }),
        )
        .pipe(dest(path.build.css))
        .pipe(clean_css())
        .pipe(
            rename({
                extname: '.min.css',
            }),
        )
        .pipe(dest(path.build.css))
        .pipe(browsersync.stream())
}

// Watch Files
function watchFiles(params) {
    gulp.watch([path.watch.css], css)
    gulp.watch([path.watch.js], js)
    gulp.watch([path.watch.img], images)
    gulp.watch([path.watch.fonts], fonts)
}

// Clean
function clean(params) {
    return del(path.clean)
}

// let build = gulp.series(clean, gulp.parallel(html, js, css, images, fonts))

// Without clean build
let build = gulp.series(gulp.parallel(js, css, images, fonts))
let watch = gulp.parallel(build, watchFiles, browserSync)

exports.img = img
exports.images = images
exports.js = js
exports.css = css
exports.fonts = fonts
exports.build = build
exports.watch = watch
exports.default = watch

Zerion Mini Shell 1.0