Clearer gulpfile

This commit is contained in:
Alex Ling 2020-09-22 08:46:53 +00:00
parent 50d4ffdb7b
commit 32b0384ea0

View File

@ -4,30 +4,36 @@ const minify = require('gulp-babel-minify');
const minifyCss = require('gulp-minify-css'); const minifyCss = require('gulp-minify-css');
const less = require('gulp-less'); const less = require('gulp-less');
gulp.task('copy-uikit-js', () => { // Copy libraries from node_moduels to public/js
gulp.task('copy-js', () => {
return gulp.src([ return gulp.src([
'node_modules/@fortawesome/fontawesome-free/js/fontawesome.min.js',
'node_modules/@fortawesome/fontawesome-free/js/solid.min.js',
'node_modules/uikit/dist/js/uikit.min.js', 'node_modules/uikit/dist/js/uikit.min.js',
'node_modules/uikit/dist/js/uikit-icons.min.js' 'node_modules/uikit/dist/js/uikit-icons.min.js'
]) ])
.pipe(gulp.dest('public/js')); .pipe(gulp.dest('public/js'));
}); });
gulp.task('copy-fontawesome', () => { // Copy UIKit SVG icons to public/img
return gulp.src([ gulp.task('copy-uikit-icons', () => {
'node_modules/@fortawesome/fontawesome-free/js/fontawesome.min.js', return gulp.src('node_modules/uikit/src/images/backgrounds/*.svg')
'node_modules/@fortawesome/fontawesome-free/js/solid.min.js' .pipe(gulp.dest('public/img'));
])
.pipe(gulp.dest('public/js'));
}); });
gulp.task('copy-js', gulp.series('copy-uikit-js', 'copy-fontawesome')); // Compile less
gulp.task('less', () => {
return gulp.src('public/css/*.less')
.pipe(less())
.pipe(gulp.dest('public/css'));
});
// Transpile and minify JS files and output to dist
gulp.task('babel', () => { gulp.task('babel', () => {
return gulp.src(['public/js/*.js']) return gulp.src(['public/js/*.js', '!public/js/*.min.js'])
.pipe(babel({ .pipe(babel({
presets: [ presets: [
['@babel/preset-env', { ['@babel/preset-env', {
debug: true,
targets: '>0.25%, not dead, ios>=9' targets: '>0.25%, not dead, ios>=9'
}] }]
], ],
@ -39,40 +45,26 @@ gulp.task('babel', () => {
.pipe(gulp.dest('dist/js')); .pipe(gulp.dest('dist/js'));
}); });
gulp.task('less', () => { // Minify CSS and output to dist
return gulp.src('public/css/*.less')
.pipe(less())
.pipe(gulp.dest('public/css'));
});
gulp.task('minify-css', () => { gulp.task('minify-css', () => {
return gulp.src('public/css/*.css') return gulp.src('public/css/*.css')
.pipe(minifyCss()) .pipe(minifyCss())
.pipe(gulp.dest('dist/css')); .pipe(gulp.dest('dist/css'));
}); });
gulp.task('copy-uikit-icons', () => { // Copy static files (includeing images) to dist
return gulp.src('node_modules/uikit/src/images/backgrounds/*.svg')
.pipe(gulp.dest('public/img'));
});
gulp.task('img', () => {
return gulp.src('public/img/*')
.pipe(gulp.dest('dist/img'));
});
gulp.task('copy-files', () => { gulp.task('copy-files', () => {
return gulp.src('public/*.*') return gulp.src(['public/img/*', 'public/*.*', 'public/js/*.min.js'], {
base: 'public'
})
.pipe(gulp.dest('dist')); .pipe(gulp.dest('dist'));
}); });
gulp.task('default', gulp.parallel( // Set up the public folder for development
gulp.series('copy-js', 'babel'), gulp.task('dev', gulp.parallel('copy-js', 'copy-uikit-icons', 'less'));
gulp.series('less', 'minify-css'),
gulp.series('copy-uikit-icons', 'img'),
'copy-files'
));
gulp.task('dev', gulp.parallel( // Set up the dist folder for deployment
'copy-js', 'less', 'copy-uikit-icons' gulp.task('deploy', gulp.parallel('babel', 'minify-css', 'copy-files'));
));
// Default task
gulp.task('default', gulp.series('dev', 'deploy'));