Files
phpMAE/gulpfile.js
T

52 lines
1.9 KiB
JavaScript

const gulp = require('gulp');
const concat = require('gulp-concat');
const streamqueue = require('streamqueue');
const uglify = require('gulp-uglify');
const cssPurge = require('gulp-css-purge');
const sass = require('gulp-sass');
// Concatenate and minify scripts
gulp.task('scripts', function() {
// inspired by https://stackoverflow.com/a/23507836
return streamqueue({ objectMode: true },
gulp.src('./node_modules/jquery/dist/jquery.min.js'),
gulp.src('./node_modules/materialize-css/dist/js/materialize.js'),
gulp.src('./node_modules/codemirror/lib/codemirror.js'),
gulp.src('./node_modules/codemirror/mode/clike/clike.js'),
gulp.src('./node_modules/codemirror/addon/edit/matchbrackets.js'),
gulp.src('./node_modules/codemirror/mode/xml/xml.js'),
gulp.src('./node_modules/codemirror/mode/javascript/javascript.js'),
gulp.src('./node_modules/codemirror/mode/htmlmixed/htmlmixed.js'),
gulp.src('./node_modules/codemirror/mode/css/css.js'),
gulp.src('./node_modules/codemirror/mode/php/php.js'),
gulp.src('./static/app.js')
)
.pipe(concat('scripts.js'))
.pipe(uglify())
.pipe(gulp.dest('./static'));
});
// Concatenate and minify stylesheets
gulp.task('styles', function() {
return streamqueue({ objectMode: true },
gulp.src('./scss/materialize-customized.scss')
.pipe(sass().on('error', sass.logError)),
gulp.src('./static/app.css')
)
.pipe(concat('styles.css'))
.pipe(cssPurge({
trim : true,
shorten : true,
verbose : false
}))
.pipe(gulp.dest('./static'));
});
// Copy file that is needed as-is
gulp.task('copy', function () {
return gulp.src('./node_modules/codemirror/lib/codemirror.css')
.pipe(gulp.dest('static'));
});
// Run entire process
gulp.task('default', gulp.series('scripts', 'styles', 'copy'));