1
0
mirror of https://github.com/Foltik/Shimapan synced 2025-02-26 00:55:20 -05:00
shimapan/gulpfile.js

104 lines
2.6 KiB
JavaScript
Raw Normal View History

2018-07-24 19:39:34 -04:00
'use strict';
2017-10-12 17:26:35 -04:00
2018-07-24 19:39:34 -04:00
const gulp = require('gulp');
const rename = require('gulp-rename');
const uglify = require('gulp-uglify-es').default;
2018-07-24 19:39:34 -04:00
const source = require('vinyl-source-stream');
const buffer = require('vinyl-buffer');
2018-07-24 19:39:34 -04:00
const browserify = require('browserify');
const es = require('event-stream');
const cleanCSS = require('gulp-clean-css');
const nodemon = require('gulp-nodemon');
const sourcemaps = require('gulp-sourcemaps');
2018-07-24 19:39:34 -04:00
const path = require('path');
const glob = require('glob');
2018-07-24 19:39:34 -04:00
gulp.task('start', done => {
2017-10-20 17:43:19 -04:00
nodemon({
script: 'server.js',
ignore: '*.*'
});
2018-07-24 19:39:34 -04:00
done();
});
2017-10-20 17:43:19 -04:00
gulp.task('watch', () => {
const fileTasks = new Map([
['.js', 'BuildJS'],
['.css', 'BuildCSS']
]);
nodemon({
script: 'server.js',
ext: 'js css',
env: {'NODE_ENV': 'dev'},
2017-10-20 16:46:14 -04:00
watch: [
'app/',
'config/'
],
tasks: changedFiles =>
changedFiles
.map(file => fileTasks.get(path.extname(file)))
.filter((value, index, self) => self.indexOf(value) === index)
}).on('restart?', 'default')
2017-10-14 15:17:16 -04:00
});
gulp.task('BuildCSS', () => {
const files = [{
src: 'app/public/css/form.css',
dest: 'form.min.css'
}, {
src: 'app/public/css/home.css',
dest: 'home.min.css'
}, {
src: 'app/public/css/panel.css',
dest: 'panel.min.css'
}, {
src: 'app/public/css/index.css',
dest: 'index.min.css'
}];
2018-07-24 19:39:34 -04:00
const tasks = files.map(file =>
gulp.src(file.src)
.pipe(cleanCSS())
.pipe(rename(file.dest)));
2018-07-24 19:39:34 -04:00
return es.merge(tasks)
.pipe(gulp.dest('public/css'));
});
gulp.task('BuildJS', () => {
const files = [{
src: [
'app/public/services/*.js',
'app/public/panel/**/*.js'
],
dest: 'panel.bundle.js'
}, {
src: [
'app/public/services/*.js',
'app/public/shimapan/**/*.js'
],
dest: 'shimapan.bundle.js'
}, {
src: [
'app/public/index/*.js'
],
dest: 'index.bundle.js'
}];
2018-07-24 19:39:34 -04:00
const tasks = files.map(file =>
browserify({entries: file.src.map(g => glob.sync(g)), debug: true})
.bundle()
.pipe(source(file.dest))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
2018-07-24 19:39:34 -04:00
.pipe(uglify())
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('public/js')));
2018-07-24 19:39:34 -04:00
return es.merge(tasks)
.pipe(gulp.dest('public/js'));
});
gulp.task('default', gulp.parallel('BuildJS', 'BuildCSS'));