Skip to content

Commit

Permalink
DEV: Update Gulp Tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
anantajitjg committed Nov 16, 2021
1 parent 05157aa commit 9a42424
Show file tree
Hide file tree
Showing 2 changed files with 111 additions and 102 deletions.
68 changes: 39 additions & 29 deletions config.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,54 +5,64 @@
* @since 1.0.0
*/

'use strict';
"use strict";

const path = require('path');
const assets_DIR = './assets/';
const DEV_URL = process.env.DEV_URL || 'localhost';
const NODE_ENV = process.env.NODE_ENV || 'development';
const path = require("path");
const assets_DIR = "./assets/";
const DEV_URL = process.env.DEV_URL || "localhost";
const NODE_ENV = process.env.NODE_ENV || "development";

module.exports = {
previewURL: DEV_URL,
debug: NODE_ENV == 'development' ? true : false,
debug: NODE_ENV == "development" ? true : false,
style: {
general: {
src: assets_DIR + 'css/general/',
dest: assets_DIR + 'css/',
outputName: 'general.css'
src: assets_DIR + "css/general/",
dest: assets_DIR + "css/",
outputName: "general.css"
},
public: {
src: assets_DIR + 'css/public/',
dest: assets_DIR + 'css/',
outputName: 'style.css'
src: assets_DIR + "css/public/",
dest: assets_DIR + "css/",
outputName: "style.css"
},
admin: {
src: assets_DIR + 'css/admin/',
dest: assets_DIR + 'css/',
outputName: 'admin.css'
src: assets_DIR + "css/admin/",
dest: assets_DIR + "css/",
outputName: "admin.css"
},
'admin-global': {
src: assets_DIR + 'css/admin-global/',
dest: assets_DIR + 'css/',
outputName: 'admin-global.css'
"admin-global": {
src: assets_DIR + "css/admin-global/",
dest: assets_DIR + "css/",
outputName: "admin-global.css"
},
"admin-overview": {
src: assets_DIR + "css/admin-overview/",
dest: assets_DIR + "css/",
outputName: "admin-overview.css"
}
},
scripts: {
public: {
src: assets_DIR + 'js/public/',
dest: assets_DIR + 'js/',
outputName: 'script.js'
src: assets_DIR + "js/public/",
dest: assets_DIR + "js/",
outputName: "script.js"
},
admin: {
src: assets_DIR + 'js/admin/',
dest: assets_DIR + 'js/',
outputName: 'admin.js'
src: assets_DIR + "js/admin/",
dest: assets_DIR + "js/",
outputName: "admin.js"
},
"admin-overview": {
src: assets_DIR + "js/admin-overview/",
dest: assets_DIR + "js/",
outputName: "admin-overview.js"
}
},
translation: {
domain: 'wp-job-openings',
package: 'WP Job Openings',
team: 'AWSM innovations <[email protected]>',
dest: './languages/wp-job-openings.pot'
domain: "wp-job-openings",
package: "WP Job Openings",
team: "AWSM innovations <[email protected]>",
dest: "./languages/wp-job-openings.pot"
}
};
145 changes: 72 additions & 73 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,82 +5,82 @@
* @since 1.0.0
*/

'use strict';
"use strict";

/*============================= Dependencies =============================*/

const gulp = require('gulp'),
config = require('./config'),
concat = require('gulp-concat'),
rename = require('gulp-rename'),
lineEC = require('gulp-line-ending-corrector'),
bs = require('browser-sync').create();
const gulp = require("gulp"),
config = require("./config"),
concat = require("gulp-concat"),
rename = require("gulp-rename"),
lineEC = require("gulp-line-ending-corrector"),
bs = require("browser-sync").create();

/* --- Dependencies: css --- */
const cleanCSS = require('gulp-clean-css'), // Minify CSS
autoprefixer = require('gulp-autoprefixer');
const cleanCSS = require("gulp-clean-css"), // Minify CSS
autoprefixer = require("gulp-autoprefixer");

/* --- Dependencies: js --- */
const uglify = require('gulp-uglify'), // Minify JavaScript
stripDebug = require('gulp-strip-debug'); // Remove debugging stuffs
const uglify = require("gulp-uglify"), // Minify JavaScript
stripDebug = require("gulp-strip-debug"); // Remove debugging stuffs

/* --- Dependencies: i18n --- */
const wpPot = require('gulp-wp-pot'),
sort = require('gulp-sort');
const wpPot = require("gulp-wp-pot"),
sort = require("gulp-sort");

/*================================= Tasks =================================*/

let init = (cb) => {
console.log('-------------------------------------------');
console.log('<<<<<-------- WP Job Openings -------->>>>>');
console.log('-------------------------------------------');
let init = cb => {
console.log("-------------------------------------------");
console.log("<<<<<-------- WP Job Openings -------->>>>>");
console.log("-------------------------------------------");
cb();
};

/* --- Tasks: Browsersync --- */

let browserSync = (cb) => {
let browserSync = cb => {
bs.init({
ghostMode: false,
proxy: config.previewURL,
notify: false
});
cb();
};
let bsReload = (cb) => {
let bsReload = cb => {
bs.reload();
cb();
};
browserSync.description = `Initialize Browsersync and proxy ${config.previewURL}`;
gulp.task('browser-sync', browserSync);
gulp.task("browser-sync", browserSync);

/* --- Tasks: CSS --- */

for (let type in config.style) {
let styleTask = () => {
let src =
type === 'general'
? [ config.style.general.src + '*.css' ]
type === "general"
? [config.style.general.src + "*.css"]
: [
config.style[type].src + 'vendors/*.css',
config.style[type].src + 'includes/*.css',
config.style[type].src + '*.css'
];
config.style[type].src + "vendors/*.css",
config.style[type].src + "includes/*.css",
config.style[type].src + "*.css"
];
let outputName = config.style[type].outputName;
let dest = config.style[type].dest;

return gulp
.src(src, { sourcemaps: config.debug ? true : false })
.src(src, {sourcemaps: config.debug ? true : false})
.pipe(concat(outputName))
.pipe(autoprefixer())
.pipe(cleanCSS({ compatibility: 'ie9' }))
.pipe(rename({ suffix: '.min' }))
.pipe(cleanCSS({compatibility: "ie9"}))
.pipe(rename({suffix: ".min"}))
.pipe(lineEC())
.pipe(gulp.dest(dest, { sourcemaps: config.debug ? '.' : false }));
.pipe(gulp.dest(dest, {sourcemaps: config.debug ? "." : false}));
};
let loadStyleTask = () => {
let src = config.style[type].dest;
return gulp.src(src + '*.css').pipe(bs.stream());
return gulp.src(src + "*.css").pipe(bs.stream());
};
styleTask.description = `Concatenate ${type} styles and minify it`;
gulp.task(`${type}-style`, styleTask);
Expand All @@ -91,20 +91,23 @@ for (let type in config.style) {

for (let type in config.scripts) {
let scriptTask = () => {
let src = [ config.scripts[type].src + 'vendors/*.js', config.scripts[type].src + '*.js' ];
let src = [
config.scripts[type].src + "vendors/*.js",
config.scripts[type].src + "*.js"
];
let outputName = config.scripts[type].outputName;
let dest = config.scripts[type].dest;

let stream = gulp.src(src, { sourcemaps: config.debug ? true : false });
let stream = gulp.src(src, {sourcemaps: config.debug ? true : false});
if (!config.debug) {
stream = stream.pipe(stripDebug());
}
stream = stream
.pipe(concat(outputName))
.pipe(uglify())
.pipe(rename({ suffix: '.min' }))
.pipe(rename({suffix: ".min"}))
.pipe(lineEC())
.pipe(gulp.dest(dest, { sourcemaps: config.debug ? '.' : false }));
.pipe(gulp.dest(dest, {sourcemaps: config.debug ? "." : false}));
return stream;
};
scriptTask.description = `Concatenate ${type} js files and minify it`;
Expand All @@ -116,7 +119,7 @@ for (let type in config.scripts) {

let i18n = () => {
return gulp
.src([ './**/*.php', '!./build/**/*.php', '!./vendor/**/*.php' ])
.src(["./**/*.php", "!./build/**/*.php", "!./vendor/**/*.php"])
.pipe(sort())
.pipe(
wpPot({
Expand All @@ -127,66 +130,62 @@ let i18n = () => {
)
.pipe(gulp.dest(config.translation.dest));
};
i18n.description = 'Generates pot file for plugin localization';
gulp.task('translate', i18n);
i18n.description = "Generates pot file for plugin localization";
gulp.task("translate", i18n);

/* --- Generic Tasks --- */

const genericTasks = [
"general-style",
"public-style",
"admin-style",
"admin-global-style",
"admin-overview-style",
"public-scripts",
"admin-scripts",
"admin-overview-scripts"
];

/* --- Tasks: Watch files for any change --- */

let watchFiles = () => {
gulp.watch('./**/*.php', bsReload);
gulp.watch("./**/*.php", bsReload);
for (let type in config.style) {
gulp.watch(config.style[type].src + '**/*.css', gulp.series(`load-${type}-styles`));
gulp.watch(
config.style[type].src + "**/*.css",
gulp.series(`load-${type}-styles`)
);
}
for (let type in config.scripts) {
gulp.watch(config.scripts[type].src + '**/*.js', gulp.series(`load-${type}-scripts`));
gulp.watch(
config.scripts[type].src + "**/*.js",
gulp.series(`load-${type}-scripts`)
);
}
};
watchFiles.description = 'Watch PHP, JS and CSS files for any change';
watchFiles.description = "Watch PHP, JS and CSS files for any change";
gulp.task(
'watch',
gulp.series(
browserSync,
gulp.parallel(
'general-style',
'public-style',
'admin-style',
'admin-global-style',
'public-scripts',
'admin-scripts'
),
watchFiles
)
"watch",
gulp.series(browserSync, gulp.parallel(...genericTasks), watchFiles)
);

/* --- Tasks: Default tasks --- */

gulp.task(
'default',
"default",
gulp.series(
init,
gulp.parallel(
'general-style',
'public-style',
'admin-style',
'admin-global-style',
'public-scripts',
'admin-scripts'
),
gulp.parallel(...genericTasks),
browserSync
)
);

/* --- Tasks: Build tasks --- */

gulp.task(
'build',
"build",
gulp.series(
init,
gulp.parallel(
'general-style',
'public-style',
'admin-style',
'admin-global-style',
'public-scripts',
'admin-scripts'
)
gulp.parallel(...genericTasks)
)
);

0 comments on commit 9a42424

Please sign in to comment.