Gulp – A toolkit to automate and enhance your workflow

At Work where we need to minify size for performance and pack our output. Gulp help optimize the transition from development to production for most of our scripts. This includes minifying css and js scrips, obfuscating code, optimizing images


const gulp = require('gulp');
const minify = require('gulp-minify');
const cleanCSS = require('gulp-clean-css');
const rename = require('gulp-rename');
const concat = require('gulp-concat');
const del = require('del');
const debug = require("gulp-debug");
const replace = require("gulp-replace");
const gulpif = require('gulp-if');
const htmlmin = require('gulp-htmlmin');
const fs = require('fs');
const javascriptObfuscator = require('gulp-javascript-obfuscator');
const querySelectorAll = require('query-selector');
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const sri = require('sri-calc');


function release(){
var srcfiles = fs.readdirSync(__dirname + "/src/js").concat(fs.readdirSync(__dirname + "/src/css"));
gulp.src(srcFiles, { allowEmpty: true })
.pipe(debug())
.pipe(concat(name + ".unobfuscated." + filetype))
.pipe(gulp.dest("../AppSmartSuite/wwwroot/dist/tmp"))
.pipe(debug())
.pipe(gulpif(filetype == 'js', minify())) //{noSource: true}//TOCHECK
.pipe(gulpif(filetype == 'css', replace(/(..\/)+images/g, "..\/images")))
.pipe(gulpif(filetype == 'css', cleanCSS({ level: { 1: { specialComments: 0 } } })))
.pipe(gulpif(filetype == 'js', rename(name + ".unobfuscated.min." + filetype)))
.pipe(gulpif(filetype == 'js', gulp.dest("../wwwroot/dist/tmp")))
.pipe(gulpif(filetype == 'js' && (name != "mdt" || name != "mdtrz"), javascriptObfuscator()))
.pipe(gulpif(filetype == 'css', cleanCSS({ level: { 1: { specialComments: 0 } } })))
.pipe(gulpif(filetype == 'css', minify({ noSource: true })))
.pipe(debug())
.pipe(rename(name + ".min." + filetype))
.pipe(debug())
.pipe(gulpif(filetype == 'css', gulp.dest("../wwwroot/css")))
.pipe(gulpif(filetype == 'js', gulp.dest("../wwwroot/js")));
}
   exports.default = release;

Thus we can pack our script files.