/home/edulekha/sriramaaresorts.com/wp-content/themes/getleads/gulpfile.babel.js
import gulp from 'gulp';
import yargs from 'yargs'
import sass from 'gulp-sass'
import cleanCSS from 'gulp-clean-css'
import gulpif from 'gulp-if'
import cssbeautify from 'gulp-cssbeautify'
import sourcemaps from 'gulp-sourcemaps'
import imagemin from 'gulp-imagemin'
import del from 'del'
import webpack from 'webpack-stream'
import uglify from 'gulp-uglify'
import named from 'vinyl-named'
import browserSync from 'browser-sync'
import zip from 'gulp-zip'
import replace from 'gulp-replace'
import info from './package.json'
const PRODUCTION = yargs.argv.prod;
const paths = {
styles: {
src : ['vendors/scss/master.scss', 'vendors/scss/blog.scss', 'vendors/scss/gutenberg-custom.scss', 'vendors/scss/gutenberg-editor-custom.scss', 'vendors/scss/xs-woocommerce.scss', 'vendors/scss/elementor-editor-panel.scss'],
dest: 'assets/css'
},
images: {
src : 'vendors/images/**/*.{jpg,jpeg,png,svg,gif}',
dest: 'assets/images'
},
other: {
src : ['vendors/**/*', '!vendors/{images,scss}', '!vendors/{images,scss}/**/*'],
dest: 'assets'
},
scripts: {
src : ['vendors/js/**.js'],
dest: 'assets/js'
},
package: {
src : ['**/*', '!theme.readme.txt', '!package.json', '!package-lock.json', '!node_modules{,/**}', '!vendors{,/**}', '!.git{,/**}', '!.babelrc', '!.gitignore', '!gulpfile.babel.js', '!packaged{,/**}'],
dest: 'packaged'
}
};
const server = browserSync.create();
export const serve = (done) => {
server.init({
proxy: `http://localhost/wordpress/${info.name}/demo-checking/`
});
done()
}
export const reload = (done) => {
server.reload();
done();
}
export const clean = () => del(['assets']);
export const clean_packaged = () => del(['packaged']);
export const styles = () => {
return gulp.src(paths.styles.src)
.pipe(gulpif(!PRODUCTION, sourcemaps.init()))
.pipe(sass().on('error', sass.logError))
.pipe(gulpif(PRODUCTION, cleanCSS({compatibility: 'ie8'})))
.pipe(gulpif(!PRODUCTION, cssbeautify()))
.pipe(gulpif(!PRODUCTION, sourcemaps.write()))
.pipe(gulp.dest(paths.styles.dest))
.pipe(server.stream())
}
export const images = () => {
return gulp.src(paths.images.src)
.pipe(gulpif(PRODUCTION, imagemin()))
.pipe(gulp.dest(paths.images.dest))
}
export const copy = () => {
return gulp.src(paths.other.src)
.pipe(gulp.dest(paths.other.dest))
}
export const scripts = () => {
return gulp.src(paths.scripts.src)
.pipe(named())
.pipe(webpack({
module: {
rules: [
{
test: /\.js$/,
use: {
loader: 'babel-loader',
options: {
presets: ['babel-preset-env']
}
}
}
],
},
optimization: {
minimize: false
},
externals: {
jquery: 'jQuery'
},
devtool: !PRODUCTION ? '#inline-source-map' : false,
}))
.pipe(gulpif(PRODUCTION, uglify()))
.pipe(gulp.dest(paths.scripts.dest))
}
export const watch = () => {
gulp.watch('vendors/scss/**/*.scss', styles);
// gulp.watch('vendors/js/*.js', gulp.series(scripts, reload));
gulp.watch(paths.images.src, gulp.series(images, reload));
gulp.watch(paths.other.src, gulp.series(copy, reload));
gulp.watch('**/*.php', reload);
}
export const compress = () => {
return gulp.src(paths.package.src)
.pipe(replace('_themename', info.name))
.pipe(replace('_Themename', info.name.charAt(0).toUpperCase() + info.name.slice(1)))
.pipe(replace('_THEMENAME', info.name.toUpperCase()))
.pipe(replace('_ThemeName', info.theme_info.SnakeCase))
.pipe(replace('__theme_version', info.theme_info.version))
.pipe(replace('__theme_description', info.theme_info.description))
.pipe(replace('__theme_uri', info.theme_info.uri))
.pipe(replace('__theme_author', info.theme_info.author))
.pipe(replace('__theme_main_website', info.theme_info.main_website))
.pipe(replace('__theme_theme_tag', info.theme_info.theme_tag))
.pipe(replace('__theme__license_uri', info.theme_info.license_uri))
.pipe(replace('__theme__essential_plugin__version', info.theme_info.essential_plugin))
.pipe(replace('__theme__support_link', info.theme_info.support_link))
.pipe(replace('__theme__theme_profile', info.theme_info.theme_profile))
.pipe(zip(`${info.name}/${info.name}-v${info.theme_info.version}.zip`))
.pipe(gulp.dest(paths.package.dest))
}
export const dev = gulp.series(clean, gulp.parallel(styles, images, copy), serve, watch);
export const build = gulp.series(clean, gulp.parallel(styles, images, copy));
export const bundle = gulp.series(clean_packaged, build, compress);
export default dev;