52 lines
1.9 KiB
JavaScript
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')); |