mamberamo/public/style/vendor/jquery-smartwizard/gulpfile.js
2022-04-13 13:51:55 +07:00

138 lines
3.1 KiB
JavaScript

// Include the required tools used on tasks
var gulp = require('gulp'),
jshint = require('gulp-jshint'),
rename = require('gulp-rename'),
uglify = require('gulp-uglify'),
saveLicense = require('uglify-save-license'),
babel = require("gulp-babel"),
postcss = require('gulp-postcss'),
cleanCSS = require('gulp-clean-css'),
cssbeautify = require('gulp-cssbeautify'),
autoprefixer = require('autoprefixer'),
sass = require('gulp-sass'),
del = require('del');
sass.compiler = require('node-sass');
var Server = require('karma').Server;
var browserSync = require('browser-sync').create();
var reload = browserSync.reload;
// Specify the Source files
var SRC_JS = 'src/js/*.js';
var SRC_CSS = 'src/css/*.css';
var SRC_SCSS = 'src/scss/*.scss';
// Specify the Destination folders
var DEST_JS = 'dist/js';
var DEST_CSS = 'dist/css';
var DEST_SCSS = 'src/css';
// BUILD JS
function build_js(cb) {
gulp.src(SRC_JS)
.pipe(babel({
presets: ['@babel/env']
}))
.pipe(gulp.dest(DEST_JS))
.pipe(uglify({
output: {
comments: saveLicense
}
}))
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest(DEST_JS));
cb();
}
// BUILD CSS
function build_css(cb) {
gulp.src(SRC_CSS)
.pipe(postcss( [autoprefixer()] ))
.pipe(cssbeautify({ autosemicolon: true }))
.pipe(gulp.dest(DEST_CSS))
.pipe(cleanCSS({compatibility: 'ie8'}))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(DEST_CSS));
cb();
}
// BUILD SCSS
function build_scss(cb) {
gulp.src(SRC_SCSS)
.pipe(sass({outputStyle:'expanded'}).on('error', sass.logError))
.pipe(gulp.dest(DEST_SCSS));
cb();
}
// LINT
function lint_js(cb) {
gulp.src(SRC_JS)
.pipe(jshint({ "esversion": 8 }))
.pipe(jshint.reporter('default'));
cb();
}
// CLEAN
function clean_js(cb) {
del.sync([DEST_JS]);
cb();
}
function clean_css(cb) {
del.sync([DEST_CSS]);
cb();
}
// WATCH
function watch(cb) {
gulp.watch(SRC_JS, build_js);
gulp.watch(SRC_CSS, build_css);
gulp.watch(SRC_SCSS, build_scss);
cb();
}
// SERVE
function serve(cb) {
// Serve files from the root of this project
browserSync.init({
server: {
baseDir: ["examples", "dist"],
index: "index.html"
}
});
gulp.watch(SRC_JS, build_js).on("change", reload);
gulp.watch(SRC_CSS, build_css).on("change", reload);
gulp.watch(SRC_SCSS, build_scss).on("change", reload);
cb();
}
// TEST
function test(cb) {
new Server({
configFile: __dirname + '/karma.conf.js',
singleRun: true
}, done).start();
cb();
}
// EXPORT methods
exports.clean = gulp.parallel(clean_js, clean_css);
exports.build = gulp.parallel(gulp.series(clean_js, lint_js, build_js), gulp.series(build_scss, build_css, clean_css));
exports.lint = lint_js;
exports.watch = watch;
exports.test = test;
exports.serve = serve;
exports.default = serve;