A simple file sharing site with an easy to use API and online panel.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.8KB

  1. 'use strict';
  2. const gulp = require('gulp');
  3. const gutil = require('gutil');
  4. const watchify = require('watchify');
  5. const browserify = require('browserify');
  6. const source = require('vinyl-source-stream');
  7. const buffer = require('vinyl-buffer');
  8. const rename = require('gulp-rename');
  9. const uglify = require('gulp-uglify-es').default;
  10. const es = require('event-stream');
  11. const cleanCSS = require('gulp-clean-css');
  12. const nodemon = require('gulp-nodemon');
  13. const sourcemaps = require('gulp-sourcemaps');
  14. const path = require('path');
  15. const glob = require('glob');
  16. let jsFiles = {
  17. src: [
  18. glob.sync('app/public/services/*.js'),
  19. glob.sync('app/public/panel/**/*.js'),
  20. glob.sync('app/public/shimapan/**/*.js'),
  21. ],
  22. dest: 'shimapan.bundle.js'
  23. };
  24. let staticJs = [{
  25. src: 'app/public/index/typegraph.js',
  26. dest: 'typegraph.min.js'
  27. }];
  28. const bundler = () =>
  29. browserify({
  30. entries: jsFiles.src,
  31. debug: true,
  32. cache: {},
  33. packageCache: {}
  34. });
  35. const watcher = watchify(bundler());
  36. watcher.on('log', gutil.log);
  37. const bundle = pkg =>
  38. pkg.bundle()
  39. .pipe(source(jsFiles.dest))
  40. .pipe(buffer())
  41. .pipe(sourcemaps.init({loadMaps: true}))
  42. .pipe(uglify())
  43. .pipe(sourcemaps.write('./'))
  44. .pipe(gulp.dest('public/js'));
  45. gulp.task('build', () => bundle(bundler()));
  46. gulp.task('watch', () => {
  47. bundle(watcher);
  48. watcher.on('update', () => bundle(watcher));
  49. });
  50. gulp.task('minify', () => {
  51. const tasks = staticJs.map(file =>
  52. gulp.src(file.src)
  53. .pipe(rename(file.dest))
  54. .pipe(buffer())
  55. .pipe(sourcemaps.init({loadMaps: true}))
  56. .pipe(uglify())
  57. .pipe(sourcemaps.write('./')));
  58. return es.merge(tasks)
  59. .pipe(gulp.dest('public/js'));
  60. });
  61. gulp.task('default', gulp.parallel('build', 'minify'));