JSFiddle - React, Tailwind, and code Playground
JavaScript
var gulp = require('gulp');
var concat = require('gulp-concat');
var minify = require('gulp-clean-css');
var header = require('gulp-header');
var sass = require('gulp-sass');
var newer = require('gulp-newer');
var plumber = require('gulp-plumber');
var uglify = require('gulp-uglify');
var maps = require('gulp-sourcemaps');
var gutil = require('gulp-util');
var http = require('http');
var fs = require('fs');
var st = require('st');
var styleNames = ['main'];
var scriptNames = ['main', 'head', 'libs'];
var siteNames = ['my-app', 'my-other-app'];
var destPath = './';
var siteArray = [];
var buildTasks = [];
var watchTasks = {
paths:[],
taskNames:[]
};
function getBuildInfo() {
// Get current date of build
var data = {};
var date = new Date();
var version;
data.date = (date.getMonth() + 1) + "-" + date.getDate() + "-" + date.getFullYear();
data.timestamp = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
data.version = '0.0.1';
data.app = "My Main App";
return data;
}
var buildInfo = getBuildInfo();
// Layout for information placed at the top of built files
var topBanner = ['/*',
' * @author <%= buildInfo.app %>',
' * @version v<%= buildInfo.version %>',
' * @date <%= buildInfo.date %>',
' * @timestamp <%= buildInfo.timestamp %>',
' */',
'',
'',
'',
''
].join('\n');
var plumberError = function(err) {
gutil.beep();
console.log(err);
console.log('^^ Plumber Error ^^');
this.emit('end');
};
// set scss tasks
function setScssTasks(site, filename, paths) {
return gulp.src(paths)
.pipe(newer(destPath + site + '/css/' + filename + '.css'))
.pipe(maps.init())
.pipe(concat(filename + '.css'))
.pipe(plumber({errorHandler : plumberError }))
.pipe(sass())
.pipe(minify({advanced: false, aggressiveMerging: false}))
.pipe(header(topBanner, { buildInfo: buildInfo }))
.pipe(maps.write('./map'))
.pipe(gulp.dest(destPath + site + '/css'))
// .pipe(livereload());
};
// set JS tasks
function setJSTasks(site,...