var gulp = require('gulp'); var uglify = require('gulp-uglify'); var concat = require('gulp-concat'); var sass = require('gulp-sass')(require('sass')); var sassPackageImporter = require('node-sass-package-importer'); var autoprefixer = require('gulp-autoprefixer'); var cleanCSS = require('gulp-clean-css'); var sourcemaps = require('gulp-sourcemaps'); var touch = require('gulp-touch-fd'); var fontName = 'Icons'; gulp.task('main-js', function() { return gulp.src([ 'node_modules/@popperjs/core/dist/umd/popper.js', 'node_modules/bootstrap/dist/js/bootstrap.js', 'js/highlight.pack.js', 'js/highlight.js', ]) .pipe(sourcemaps.init()) .pipe(gulp.dest('static/js/')) .pipe(concat('main.js')) .pipe(uglify()) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('static/js/')) .pipe(touch()); }); gulp.task('map-js', function() { return gulp.src([ 'node_modules/leaflet/dist/leaflet.js', 'js/map.js']) .pipe(sourcemaps.init()) .pipe(gulp.dest('static/js/')) .pipe(concat('map.js')) .pipe(uglify()) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('static/js/')) .pipe(touch()); }); gulp.task('sass', function() { return gulp.src('sass/**/*.scss') .pipe(sourcemaps.init()) .pipe(sass({ importer: sassPackageImporter(), outputStyle: 'compressed', quietDeps: true, }).on('error', sass.logError)) .pipe(autoprefixer()) .pipe(cleanCSS()) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('static/css/')) .pipe(touch()); }); gulp.task('css', gulp.series(['sass'])); gulp.task('js', gulp.parallel(['main-js', 'map-js'])); gulp.task('watch', function() { gulp.watch(['sass/**/*.scss'], gulp.parallel(['sass'])); }); gulp.task('default', gulp.parallel(['js', 'css']));