mirror of
https://github.com/DreamExposure/DisCal-Discord-Bot.git
synced 2026-04-27 04:40:31 -05:00
e8d013a709
This commit gets typescript compiling to browser-safe javascript using webpack. Also fix some issues regarding handling status endpoints, missed debug and error reports, and cleaning some other things up. Last change involves getting maven to automatically compile typescript and styles for the website without needing to do it in cli before the package
143 lines
3.7 KiB
JavaScript
143 lines
3.7 KiB
JavaScript
let gulp = require('gulp');
|
|
let sass = require('gulp-sass');
|
|
let header = require('gulp-header');
|
|
let cleanCSS = require('gulp-clean-css');
|
|
let rename = require("gulp-rename");
|
|
let autoprefixer = require('gulp-autoprefixer');
|
|
let del = require("del");
|
|
let pkg = require('./package.json');
|
|
let browserSync = require('browser-sync').create();
|
|
|
|
// Set the banner content
|
|
let banner = ['/*!\n',
|
|
' */\n',
|
|
'\n'
|
|
].join('');
|
|
|
|
// Copy third party libraries from /node_modules into /vendor
|
|
gulp.task('vendor', gulp.series(function(done) {
|
|
// Bootstrap
|
|
gulp.src([
|
|
'./node_modules/bootstrap/dist/**/*',
|
|
'!./node_modules/bootstrap/dist/css/bootstrap-grid*',
|
|
'!./node_modules/bootstrap/dist/css/bootstrap-reboot*'
|
|
])
|
|
.pipe(gulp.dest('./web/src/main/resources/static/vendor/bootstrap'));
|
|
|
|
// jQuery
|
|
gulp.src([
|
|
'./node_modules/jquery/dist/*',
|
|
'!./node_modules/jquery/dist/core.js'
|
|
])
|
|
.pipe(gulp.dest('./web/src/main/resources/static/vendor/jquery'));
|
|
|
|
// jQuery Easing
|
|
gulp.src([
|
|
'./node_modules/jquery.easing/*.js'
|
|
])
|
|
.pipe(gulp.dest('./web/src/main/resources/static/vendor/jquery-easing'));
|
|
|
|
//ChartJS
|
|
gulp.src([
|
|
'./node_modules/chart.js/dist/*.js'
|
|
])
|
|
.pipe(gulp.dest('./web/src/main/resources/static/vendor/chart.js'));
|
|
|
|
//DataTables
|
|
gulp.src([
|
|
'./node_modules/datatables.net/js/*.js',
|
|
'./node_modules/datatables.net-bs4/js/*.js',
|
|
'./node_modules/datatables.net-bs4/css/*.css'
|
|
])
|
|
.pipe(gulp.dest('./web/src/main/resources/static/vendor/datatables'));
|
|
|
|
// Font Awesome 5
|
|
gulp.src([
|
|
'./node_modules/@fortawesome/**/*'
|
|
])
|
|
.pipe(gulp.dest('./web/src/main/resources/static/vendor'));
|
|
|
|
// Simple Line Icons
|
|
gulp.src([
|
|
'./node_modules/simple-line-icons/fonts/**'
|
|
])
|
|
.pipe(gulp.dest('./web/src/main/resources/static/vendor/simple-line-icons/fonts'));
|
|
|
|
gulp.src([
|
|
'./node_modules/simple-line-icons/css/**'
|
|
])
|
|
.pipe(gulp.dest('./web/src/main/resources/static/vendor/simple-line-icons/css'));
|
|
|
|
done();
|
|
}));
|
|
|
|
gulp.task('clean:all', gulp.series(function () {
|
|
return del([
|
|
"./web/build",
|
|
"./web/src/main/resources/static/assets/js/**",
|
|
"./web/src/main/resources/static/assets/css/**"
|
|
])
|
|
}));
|
|
|
|
gulp.task('clean:build', gulp.series(function () {
|
|
return del([
|
|
"./web/build"
|
|
])
|
|
}));
|
|
|
|
// Compile SCSS
|
|
gulp.task('css:compile', gulp.series(function () {
|
|
return gulp.src('./web/src/main/less/**/*.scss')
|
|
.pipe(sass.sync({
|
|
outputStyle: 'expanded'
|
|
}).on('error', sass.logError))
|
|
.pipe(autoprefixer({
|
|
overrideBrowserslist: ['last 2 versions'],
|
|
cascade: false
|
|
}))
|
|
.pipe(header(banner, {
|
|
pkg: pkg
|
|
}))
|
|
.pipe(gulp.dest('./web/src/main/resources/static/assets/css'))
|
|
}));
|
|
|
|
// Minify CSS
|
|
gulp.task('css:minify', gulp.series(['css:compile'], function () {
|
|
return gulp.src([
|
|
'./web/src/main/resources/static/assets/css/*.css',
|
|
'!./web/src/main/resources/static/assets/css/*.min.css'
|
|
])
|
|
.pipe(cleanCSS())
|
|
.pipe(rename({
|
|
suffix: '.min'
|
|
}))
|
|
.pipe(gulp.dest('./web/src/main/resources/static/assets/css'));
|
|
}));
|
|
|
|
// CSS
|
|
gulp.task('css', gulp.series(['css:compile', 'css:minify']));
|
|
|
|
// Default task
|
|
gulp.task('default', gulp.series(['clean:all', 'css', 'vendor', 'clean:build']));
|
|
|
|
gulp.task('build', gulp.series(['clean:all', 'css', 'clean:build']));
|
|
|
|
// Configure the browserSync task
|
|
gulp.task('browserSync', gulp.series(function() {
|
|
browserSync.init({
|
|
server: {
|
|
baseDir: "./web/src/main/resources/"
|
|
}
|
|
});
|
|
}));
|
|
|
|
// Dev task
|
|
gulp.task('dev', gulp.series(['css', 'browserSync'], function () {
|
|
gulp.watch('./web/src/main/less/**/*.scss').on('change', gulp.series['css']);
|
|
gulp.watch('/web/src/main/resources/templates/*.html').on('change', function () {
|
|
browserSync.reload();
|
|
});
|
|
gulp.watch('/web/src/main/resources/static/assets/js/*.js').on('change', function () {
|
|
browserSync.reload();
|
|
});
|
|
})); |